リリースバイナリにロードされる共有ライブラリのメモリリークを調べる方法を知る必要があります。私は-gオプションでビルドした共有ライブラリを意味しますが、共有ライブラリをロードするバイナリは-gオプションでビルドされていません。valgrind - 共有ライブラリのメモリリークを見つける
次のようなリークレポートがあります。
==739== at 0x4A05809: malloc (vg_replace_malloc.c:149)
==739== by 0x84781B1: ???
==739== by 0x87507F5: ???
==739== by 0x874CF47: ???
==739== by 0x874E657: ???
==739== by 0x874F7C2: ???
==739== by 0x8779C0C: ???
共有ライブラリからのリークのスタックトレースを取得する方法を教えてください。
dlcloseの後にシンボルのアンロードを無効にするオプションを提供するパッチがありました。パッチは動作し、私は何度もそれを使用しました。しかしパッチは古いバージョンであったので、今は腐っていると思います。 https://bugs.kde.org/show_bug.cgi?id=79362 – k0n3ru
@TomH: "dlcloseの省略"の回避策は、多くの誤検出を招く可能性があることを指摘しておきます。ヒープ上にあった要素を破壊するオブジェクトがスタック上に存在する場合、dlcloseが最初に破壊を行ったため、これらはリークとして出力に表示されます。 – newhouse
また、valgrindが64ビットだが、32 – newhouse