我在尝试使用 gdb 在 Alpine Linux 上调试 OpenJDK java 时遇到了困难 - 有没有人成功地这样做过?
当在gdb试图调试Java,例如,gdb java并且r -version,它立即失败:
Thread 1 "java" recieved signal ?, Unknown signal. __cp_end () at src/thread/x86_64/syscall_cp.s:29
我搜索并搜索,但找不到任何有关在 Alpine 上进行 OpenJDK 调试的参考或解决方案。
在其他平台(macOS Sierra、MinGW)上看到的其他处理相同 gdb 错误的线程表明,这recieved signal ?, Unknown signal可能是由各种原因造成的,包括gdb 错误、未捕获的异常、堆栈溢出和其他应用程序错误。
在 gdb 之外,java 工作没有任何问题,gdb 可以很好地调试一个简单的 C++ 程序。我正在运行 Alpine V3.8。
我尝试过的事情:
不同的 gdb 版本 ( 8.0.1-r6, 8.0.1-r3, 7.12.1-r1)。
不同的 OpenJDK 版本 ( 1.8.0_171, 1.7.0_181)。
从不同的 shell ( /bin/ash, /bin/bash)运行,有和没有sudo.
在.gdbinit: 中禁用信号停止handle SIGSEGV nostop noprint pass,对于SIGPIPE, SIGHUP, SIGFPE, 也是如此SIG34。
添加set startup-with-shell off到.gdbinit.
谢谢你的帮助!
MMMHUHU
随时随地看视频慕课网APP
相关分类