gdb 在 Alpine Linux 上调试 OpenJDK java 失败并显示“线程收到信号?

我在尝试使用 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-r68.0.1-r37.12.1-r1)。

  • 不同的 OpenJDK 版本 ( 1.8.0_1711.7.0_181)。

  • 从不同的 shell ( /bin/ash/bin/bash)运行,有和没有sudo.

  • .gdbinit: 中禁用信号停止handle SIGSEGV nostop noprint pass,对于SIGPIPESIGHUPSIGFPE, 也是如此SIG34

  • 添加set startup-with-shell off.gdbinit.

谢谢你的帮助!


MMMHUHU
浏览 294回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java