我需要知道如何找出共享庫中的內存泄漏,這些內存泄漏將被加載到發佈二進制文件中。我的意思是我用-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:讓我指出,「omit dlclose」解決方法可能會導致大量誤報。如果堆棧中存在銷燬堆中元素的對象,那麼這些元素會在輸出中顯示爲泄漏,因爲dlclose會首先完成銷燬。 – newhouse
而第二個不工作,如果valgrind是64位,但你調試32 – newhouse