William Cohen

Principal Software Engineer

William Cohen has been a developer of performance tools at Red Hat for over a decade and has worked on a number of the performance tools in Red Hat Enterprise Linux and Fedora such as OProfile, PAPI, SystemTap, and Dyninst.

Articles by


Debugging function parameters with Dyninst

Write a simplified static analyzer with Dyninst, then use it to determine which function parameters in an executable program are unused.


Instant replay: Debugging C and C++ programs with rr

Have you ever wanted to go back in time and replay exactly what went wrong in a C/C++ program? You can do it with rr—a GNU Debugger enhancement for Linux.


Debuginfo is not just for debugging programs

Discover how debuginfo can help you improve your code beyond debugging, thanks to the information it maps between the executable and the source code.


Possible issues with debugging and inspecting compiler-optimized binaries

Save time and frustration when investigating a buggy program by learning why developers are encouraged to use -Og instead of enabling compiler optimization.


How to use the Linux perf tool to count software events

Learn how to use the Linux perf tool to get a count of system calls being executed on the system in this tutorial.


Speed up SystemTap scripts with statistical aggregates

Learn how to reduce overhead and make your SystemTap scripts more efficient using statistical aggregates and the tips in this tutorial.


Speed up SystemTap script monitoring of system calls

Learn how to speed up SystemTap monitoring of Linux system calls in scripts using the tips and examples in this tutorial.


How data layout affects memory performance

This article explains what developers need to know about modern computer memory and how data layout can affect memory performance.