failmalloc
http://www.nongnu.org/failmalloc/
最近はやっているみたいなので入れてみた。
自分のプログラムで使ってみるとあっさりsegfault。やられた。
ulimit -c unlimited
としてcoreを吐くようにして、gdbで追ってみる・・・。
% gdb ./hogehoge core.15057 .... (gdb) bt #0 0x076c31ce in _nv000063gl () from /usr/lib/nvidia/libGLcore.so.1 #1 0x00000006 in ?? () Previous frame inner to this frame (corrupt stack?)
ぐへ、GLcoreの中で死んでるよ。これはどうしようもない気がする。
はてさて、こういう場合はどうすればいいんだ?
nVidiaに文句言えばいいんだろうか?
valgrindにしろ、failmallocにしろ、OpenGLの中で大量にメモリー周りの処理ミスがあるのは堪忍して欲しい。nVidiaの純正ドライバーを使っている限り、ミッションクリティカルな所には使えないってことか。