マルチスレッドの C++ アプリで発生するヒープ破損の問題を突き止めようとしています。1 つの手法として、アプリケーションの libraries 行に -lmcheck を追加してみました。これにより、比較的短い順序で明らかにヒープが破損してアプリがクラッシュします。
私たちのアプリは、(必要に応じて) malloc/free と new/delete の両方を使用します。
私たちのチームの 1 人は、-lmcheck が実際にスレッド セーフであるかどうか疑問に思い、すべての malloc/free 呼び出しにミューテックスを配置しました。クラッシュはなくなりました。
-lmcheck がマルチスレッドをサポートすることになっているかどうかは誰にもわかりませんか? 使用しようとしているツールを誤解しているだけで、不要な心配が生じているのではないでしょうか。