大家好!
我正在尝试用Intellij远程调试在tomcat 7上调试我的java8应用程序。问题是,当我在idea中运行调试时,我的断点设置为无效,消息如下:
行号信息在pathToClass类中不可用
以下是来自JAVA_OPTS的catalina.bat设置:
set "JAVA_OPTS=%JAVA_OPTS% -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999 %JSSE_OPTS%"发布于 2017-12-28 19:54:46
在构建过程中的某个阶段,Java代码被编译成带有javac编译器的类(或类似的东西)。编译器有一个选项可以包含调试信息(包括行号),这些信息显然还没有启用。
对于普通的javac,添加-g。
对于ant,将debug="true"添加到javac任务中。
对于Maven,maven编译器插件的默认配置会添加调试信息,因此必须取消要取消的显式设置。
发布于 2017-12-28 08:30:15
在构建过程中的某个阶段,Java代码被编译成带有javac编译器的类(或类似的东西)。编译器有一个选项可以包含调试信息(包括行号),这些信息显然还没有启用。如何编译代码?-Thorbj rn Ravn Andersen
在javac中添加debug="true"选项来解决这个问题。谢谢每一个帮忙的人。
发布于 2020-02-10 07:05:51
我也有同样的问题。但是这个公认的答案并没有为我解决这个问题。在我的例子中,根本原因是由三叶草插件引起的干扰。
为了调试这个问题,我比较了类A.java的源代码和A.class的反编译代码。反编译版本中有一堆垃圾是由三叶草产生的。我刚刚从项目中删除了三叶草插件,删除了build文件夹,使缓存失效并重新启动了IDEA。我添加了断点并在调试中运行它。瞧!这次成功了。
在你的情况下,它可能不是三叶草;它可能是别的东西。但是,最有可能的是,这个断点问题是由源代码和编译类之间的不匹配引起的。验证的最佳方法是将反编译类与其源进行比较。
https://stackoverflow.com/questions/48003590
复制相似问题