如何在第三方库中的 Eclipse 中设置断点?
我从第三方库的类中获得了NullPointerException。现在我想调试整个事情,我需要知道类是从哪个对象保存的。但在我看来,我无法在来自第三方的类中设置断点。
有谁知道解决我麻烦的方法吗?当然,我使用Eclipse作为我的IDE。
更新:该库是开源的。
我从第三方库的类中获得了NullPointerException。现在我想调试整个事情,我需要知道类是从哪个对象保存的。但在我看来,我无法在来自第三方的类中设置断点。
有谁知道解决我麻烦的方法吗?当然,我使用Eclipse作为我的IDE。
更新:该库是开源的。
您可以在第三方库中轻松设置方法断点,而无需源代码。只需打开类(您将获得“i-have-no-source”视图)。打开大纲,右键单击所需的方法,然后单击以创建方法断点。Toggle Method Breakpoint
要做到这一点(并最终得到一些真正有用的东西),最可靠的方法是下载源代码(你说它是开源的),并设置另一个指向该源代码的“Java项目”。
为此,请下载源代码并将其解压缩到系统上的某个位置。单击“文件”->“新建”->“Java 项目”。在下一个对话框中,为其指定一个项目名称,然后选择“从现有源代码创建项目”。浏览到开源库的根位置。
假设项目所需的所有其他库都包含在您下载的项目中,Eclipse 将找出所有内容并为您设置构建路径。
您需要从项目的构建路径中删除开源 jar,并将此新项目添加到项目的构建路径中。
现在,您可以将其视为代码,并随意调试。
这至少解决了其他方法的几个问题:
您可以将源代码“附加到jar文件”,但是如果jar文件在没有调试信息的情况下编译,这仍然不起作用。如果 jar 文件是使用调试信息编译的(...请参阅 http://java.sun.com/j2se/1.3/docs/tooldocs/win32/javac.html 和选项)。lines,source,vars
-g
您可以添加一个“异常断点”来查看 NullPointerException 何时引发,但这是一个常见的异常,并且很可能在您查找的异常之前被引发和处理多次(数百次?)。另外,如果没有原始源代码,您将无法真正看到有关抛出NullPointerException的代码的任何内容 - 您能够找出问题所在的可能性非常低。