lldb 调试 java 进程。跳过 EXC_BAD_ACCESS

ser*_*hii 4 macos java-native-interface exc-bad-access lldb

我试图让调试器不停止信号:
proc hand -p true -s false SIGBUS
proc hand -p true -s false SIGSEGV

我什至试图设置-s false所有信号。
但它仍然停止执行EXC_BAD_ACCESS
它经常发生,有时可能是无限循环。它使调试变得不可能。

在此处输入图片说明

有没有办法让 lldb 不停止?

Jim*_*ham 5

这是一个长期存在的错误。问题在于,在调试器下运行时,无法将 Mach 异常 EXC_BAD_ACCESS 转换为 SIGSEGV 的操作系统机制不可用,因此您只会卡住重新运行错误访问,但由于没有发出信号,您的处理程序不会有机会处理它。

  • 无论如何要解决这个问题吗?有些程序会故意造成此类错误访问(例如 JVM 空检查),这使得无法通过调试器运行它们。 (2认同)