如何告诉 valgrind 忽略 SIGSEGV

How to tell valgrind to ignore SIGSEGV

我有一个 C++/JNI 程序,运行 可以独立运行,但当 运行 使用 valgrind 时,它会以 SIGSEGV 退出。 我已经验证信号是从与在 gdb 调试器中 运行ning 程序时完全相同的位置抛出的。在 gdb 的上下文中,这个问题在这里得到了很好的解释: Strange sigsegv while calling java code from c++ through jni

解决方法是让gdb/valgrind忽略SIGSEGV信号。对于 gdb 这很容易。对于 valgrind - 到目前为止我一直没有成功。我试过了 http://sourceforge.net/p/valgrind/mailman/message/12485481/ 以及 --vex-iropt-register-updates=allregs-at-mem-access 但无济于事。

没有找到如何忽略 SIGSEGV,但找到了如何让 JVM 不抛出 SIGSEGV。 -Xint 选项,仅解释模式执行,将防止 SIGSEGV 被抛出。