首先,我知道存在另一個與virtually the same title有關的問題,但這個問題的答案在這裏沒有用。 Another question靠得很近,但解決方案不是我可以在這裏用戶。防止Valgrind檢查共享庫
我的應用程序使用共享庫,Valgrind 真的不喜歡。它產生:
Program Exception - illegal instruction
Image PC Routine Line Source
libirc.so 000000000405ED3C Unknown Unknown Unknown
libhdf5.so.7 00000000061338E2 Unknown Unknown Unknown
libhdf5.so.7 00000000061A73CE Unknown Unknown Unknown
libhdf5.so.7 00000000061A9D6F Unknown Unknown Unknown
libhdf5_fortran.s 0000000006B23233 Unknown Unknown Unknown
libhdf5_fortran.s 0000000006B19FF9 Unknown Unknown Unknown
les3d.x 00000000006D815C Unknown Unknown Unknown
和死亡甚至進入我的應用程序(當然,它進入我的應用程序,但我們要做的第一件事是調用一個子程序來初始化共享庫,這是它死)了。在沒有Valgrind的情況下運行不會導致非法指令,但我確實得到了奇怪的段錯誤,因此需要一個內存檢查器。所以這是完全無法使用的,這就是爲什麼錯誤抑制不起作用。
實際上是否可以防止Valgrind在應用程序調用的共享庫上運行?不壓制輸出,但實際上並不下降。如果沒有,是否有可以防止的內存檢查器?
好點,當幫助解決問題的工具導致他人時,總是令人沮喪。或者在使用調試編譯器標誌運行時無法重現發佈標誌發生的問題:( – tpg2114