首先,我知道存在另一个标题几乎相同的问题,但该问题的答案在这里没有用。另一个问题接近了,但同样的解决方案不是我可以在这里使用的。
我的应用程序使用了 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 对应用程序调用的共享库进行操作?不压制输出,但实际上不下降。如果没有,是否有可以防止的内存检查器?