Mark Dalrymple, a co-founder of CocoaHeads, regular CocoaConf speaker and Big Nerd, recently wrote a series of posts about DTrace:

What’s neat about DTrace is that this happens dynamically (hence the name). You don’t have to do anything special to participate. Any function or method in your code can be traced.

Part one covers the basics, part two explores tracing individual processes and part three describes the objc provider added by Apple.

DTrace has fascinated me for years. PostgreSQL added support in version 8.2 (add --enable-dtrace when installing via Homebrew) and it will be standard in Ruby 2.0, due in a few days. Sadly, I don’t think it will ever make it into Linux, so isn’t available for tracking down production issues in the most common UNIX server environment.