Tracing applications are something of a passion for me, especially with the introduction of DTrace in Solaris and Mac OS X. To support that, I have a new tutorial about the different methods available for tracing Unix applications. I tried to concentrate on tools and techniques that don’t require access to the source, like using truss and DTrace. From the intro:
Most developers and systems administrators know what should happen in their operating system and with their applications, but sadly, this isn’t always the case. There are times when an application has failed, or is not behaving as you expect, and you need to find out more information. By using your existing knowledge of how your application should work and some basic UNIX skills, you can trace the application to find out what is causing the problem. This tutorial will teach you the basic techniques of using tracing tools to find out what your application is doing behind the scenes.First, the tutorial looks at the distinction between debugging and tracing, and how the two solutions differ. Then it examines some specific examples of where tracing can be used to solve problems in your application. DTrace provides elements of both system tracing and debugging, and also provides you with the ability to time and benchmark applications. Finally, the tutorial shows how to trace the information being exchanged between network computers to help find problems in network applications.