Intellij idea 是否可以在IntelliJ中的反编译文件中的任意行号处添加断点?

Intellij idea 是否可以在IntelliJ中的反编译文件中的任意行号处添加断点?,intellij-idea,breakpoints,decompiler,Intellij Idea,Breakpoints,Decompiler,在IntelliJ中,如果我打开一个没有源代码的类文件,它会自动反编译。问题是我想在一个行号上设置一个断点,该行号比文件反编译版本中的最后一行还要远。我从stacktrace上知道那个行号 如何在IntelliJ中的任意行号上设置断点?我不知道这是否有效,但这里有一个解决方法,我会尝试 转到类文件(即自动反编译的源文件) 在允许行断点的随机行上添加行断点 转到项目的.iws文件(project\u name.iws) 搜索刚刚添加断点的文件名,并找到正确的标记 将标记修改为比所需行少一行(例如,

在IntelliJ中,如果我打开一个没有源代码的类文件,它会自动反编译。问题是我想在一个行号上设置一个断点,该行号比文件反编译版本中的最后一行还要远。我从stacktrace上知道那个行号


如何在IntelliJ中的任意行号上设置断点?

我不知道这是否有效,但这里有一个解决方法,我会尝试

  • 转到类文件(即自动反编译的源文件)
  • 在允许行断点的随机行上添加行断点
  • 转到项目的.iws文件(project\u name.iws)
  • 搜索刚刚添加断点的文件名,并找到正确的
    标记
  • 标记修改为比所需行少一行(例如,如果需要在845上设置断点,请输入844)
  • 保存并调用视图断点,以查看断点是否位于正确的行上

  • 现在试着调试你的程序,看看它是否达到了断点(我不知道有什么方法可以做到这一点。设置方法断点可能会让你陷入困境,尽管这会对性能产生不利的影响(启用时会大大降低程序的速度)。是否有一个暂时接近失败点的地方可以设置一个行断点,然后使用该断点启用方法断点?@MikeStrobel我考虑过,但不幸的是,即使行号在文件长度范围内,IntelliJ也不允许我在某些行上添加断点(例如:只有右括号的行)即使它与实际文件中的实际指令相对应。不幸的是,在范围内,我唯一可以打断它的地方是一行,只有一个大括号。您可能需要设置一个方法断点。IntelliJ可能允许您使用step函数逐行前进(根据原始来源)一旦你输入了这个方法。我不能确定,但值得一试(你可能需要在启用和不启用反编译器插件的情况下都尝试)@MikeStrobel这实际上是我最终要做的,但问题是IntelliJ不允许你根据方法参数设置断点条件。不幸的是,我不得不中断每次调用,并根据参数手动继续或逐步执行。无论是谁-1’提出问题,我都希望你能给出解释。这是一个很好的idea,不幸的是,它不起作用。如果我设置它超过反编译文件的结尾,它实际上不会在JVM中设置断点(我尝试了一行,我可以在方法断点之后单步执行该行)。如果我把它放在文件中的一行上,它实际上并没有将它设置为我指定的行号,它会尝试查找与反编译代码匹配的最近点(我可以看到当遇到断点时,stacktrace中的行不同,局部变量也不同)。很抱歉听到这个消息。正在附加库的源代码(我的第二个建议)也不起作用?