Mac で Valgrind

Valgrind の次期バージョンである 3.5 から Mac 環境をサポートするそうだ.
まだリリースはされていないけど,svn の trunk には既にきている.
以下,NEWS から引用

* Mac OS X is now supported.  (Note that Mac OS X is often called "Darwin"
  because that is the name of the OS core.)  

  Supported machines:
  - x86 machines are supported fairly well.
  - AMD64 (a.k.a. x86-64) are supported, but not as well.
  - Older PowerPC machines are not supported.
  - It requires Mac OS X 10.5 Leopard or later.  Porting to 10.4 is not
    planned because it would require work and 10.4 is only becoming less common.

  Things that don't work:
  - Objective-C garbage collection
  - --db-attach=yes
  - Messages like the following indicate a mismatch between Valgrind's
    memory map and the kernel. Occasional failures are expected in
    multithreaded programs. If the failure repeats for the same address
    range, then there may be a problem causing false errors or crashes.
        sync check at ...: FAILED
  - If you have Rogue Amoeba's "Instant Hijack" program installed, Valgrind
    will fail with a SIGTRAP at start-up.  This is apparently Instant
    Hijack's fault.  See https://bugs.kde.org/show_bug.cgi?id=193917 for
    details and a simple work-around.

  Many thanks to Greg Parker for developing this port over several years.

x86Leopard ならよく動くようなので,早速インストールしてみた.
特につまづくところもなく,./autogen.sh && ./configure -C --prefix=/usr/local && make -j4 && make check && sudo make install で終了.
適当な短いサンプルで試したところ,どうやらうまく動いているようだった.
memcheck, chachegrind, callgrind, helgrind といった主要な tool は動く模様.
/usr/local/lib/valgrind には drd-x86-darwin, exp-ptrcheck-x86-darwin もあるけど,どちらも "doesn't work on Darwin yet, sorry." とのこと.


これで Mac でのデバッグも多少は楽になるかもしれませんね.
あとは ltrace とか strace があれば…! DTrace はイマイチよくわからん.