我在尝试使用 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
.
谢谢你的帮助!
相关分类