java - 使用 eclipse 调试 OpenJDK 源代码
问题描述
在我的项目中,我想使用 eclipse 调试 OpenJDK 版本 8 的 C/C++ 源代码。为此,我做了以下工作:
--with-debug-level=slowdebug
使用此自述文件编译 OpenJDK8 。- 将源makefile项目导入eclipse
- 创建了一个 Eclipse 运行配置,针对已编译的 OpenJDK 的 java.exe 执行 gdb 并针对示例 java 程序。在这个配置中,我附加了 JDK 源代码目录路径,以便 eclipse 能够将调试符号转换为源代码行并向我查看它们(显然)
使用这种方法,我可以通过java.c
.
我的问题是我仍然无法通过本机代码进行调试。比如说java.lang.System.currentTimeMillis()
。
在我看来,这些库似乎没有包含在 eclipse gdb-run 中。我尝试手动运行 gdb,但仍然无法通过该代码部分进行调试。
有没有人经历过同样的行为,或者曾经尝试过调试 JDK 源代码?我想我在这里遗漏了一些东西......也许我的方法不适合这项任务?很高兴听到有关如何正确调试 JDK 源代码的任何建议。
先感谢您。
解决方案
您可能需要通过右上角的甲虫图标强制 Eclipse 进入调试模式。
另一种可能的选择是使用 assert(false) 行而不是断点。
最后,您可能需要在 Eclipse 项目设置中指定编译器。请记住,Eclipse 调试器并不适用于所有编译器,通常是因为链接器不兼容。我建议在网上查找兼容性列表。
推荐阅读
- c++ - 如何执行覆盖的方法 C++
- plugins - Nativescript Responsive @proplugin/nativescript-platform-css 不触发重绘
- c# - 如何限制 C# 中的任务数量,以便可以通过该数量的任务完成多项工作
- python - 如何在python中使用正则表达式捕获和分离文本
- javascript - 如何使其他选项卡内容与活动选项卡相同?
- forth - Forth 中的字符串输入
- python - 如何使用方法自动更改 django 模型字段值?
- python - Python在函数调用后修改了原来的变量
- c# - .NET 从 Python 中截获的 STDOUT 在 Unity 中始终为空
- numpy - 从 numpy 数组中删除多列