dmalloc バージョン 5.5.2 と glibc 2.17 を使用しようとしています。
dmalloc でリンクすると、常に segfault が発生します。
デバッグ中、役に立つデバッグ メッセージをフォーマットしたい場合、dmalloc が vsnprintf(...) を呼び出すことがわかりました。残念ながら、vsnprintf(..) 自体が free() を呼び出すため、セグメンテーション違反の理由は再帰です。free() は vsnprintf() を呼び出し、vsnprintf() は free() などを呼び出し、巨大なスタック トレースで segfault するまで続きます。
HAVE_VSNPRINTF と HAVE_VPRINTF を未定義にすることでこれをすばやく修正できますが、デバッグ メッセージに重要な情報がありません。
メモリを割り当てない vsnprintf(...) の古い実装を使用して、この問題に対する独自の解決策をハックしましたが、まだ良い解決策がないとは信じがたいです。
この問題を dmalloc で解決する標準的な方法はありますか?