Chapter 11. Threading Tools

image with no caption

This chapter mentions some debugging and performance tools that you can use on threaded applications. I haven’t dwelled on issues of correctness or performance, except in cases that might be obvious within the development decisions made on the codes presented. As the complexity of the code increases, the use of software tools makes the tracking down and elimination of bugs and performance problems much easier.

The set of tools covered in this chapter is certainly not exhaustive. I expect many other tools to be developed and released after publication of this text. The longevity of several tools presented guarantees that they should still be available by the time you read this, though some of the names of tools may change.

To again avoid looking like a corporate shill, I’ve tried to give only the barest details on these tools (and keep the marketspeak to a minimum). I can’t vouch for the accuracy of any of the commands or details about current versions of tools beyond the time of this writing. For more complete and up-to-date information, please refer to the individual tool manuals and other reference guides.

Debuggers

The most frequent debugging tool in use today is the printf statement. When trying to track down threading errors (e.g., data races, deadlock), adding such statements can cause problems to “disappear.” They’re not gone; they’re ...

Get The Art of Concurrency now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.