我有一個測試驅動程序鏈接到我寫的庫。該庫使用autotools,因此它會生成一個存檔(.a文件)和一個動態庫(.so)。Valgrind與-static關聯時出錯 - 爲什麼?
當我用'g ++ -static'鏈接我的驅動程序時,想必鏈接到.a,valgrind會反覆抱怨'條件跳轉或移動取決於未初始化的值'。第一個故障發生在__pthread_initialize_minimal的main之前。
當我沒有-static鏈接,大概連接.so,我沒有得到任何valgrind投訴。
有誰知道爲什麼? valgrind只是不工作 - 靜態?
UPDATE:因爲它連接到一個非常大的圖書館,我也不可能削減下來,我不能發表我的司機,甚至削減版本,但我注意到,最簡單的所有程序的
int main()
{
return 0;
}
==15449== Use of uninitialised value of size 8
==15449== at 0x40B0F3: exit (in /home/jdgordo/src/t)
我應該已經包括我在64位運行RedHat 5.5:
在用-static和運行從Valgrind的連接提供了一個錯誤。
嘗試將問題縮小到儘可能少的行代碼並在此處發佈。 – fazo
在各種系統庫中有很多失誤和快捷方式,所以看到那些出現在valgrind中的人並不罕見。我可以嘗試系統地忽略它們,或者只是使用共享版本進行測試。 –
我在我的系統上看不到這個。 @KerrekSB - 雖然是對的,但它並不是真正需要擔心的事情,而valgrind會附帶大型文件來壓制大部分這些文件。它可能在某種程度上與您的系統上的libc/compiler版本稍微不匹配。 – Flexo