繁体   English   中英

IntelliJ 中生成代码的源代码级调试

[英]Source level debugging of generated code in IntelliJ

我想在 IntelliJ 中调试Dagger生成的代码。 Dagger 生成的源文件放在/target/generated-test-sources/test-annotations/target/generated-sources/annotations

我查看了运行/调试配置对话框,没有看到任何明显的东西。 我还检查了模块设置,这两个都被列为源文件夹,所以 IntelliJ 肯定知道它们是源,但由于某种原因,我不会在生成的代码中找到任何断点。

对于 IntelliJ 13.1.5:

如果/target/generated-sources/annotations被标记为生成的源根,IntelliJ 永远不会触发断点。 如果/target/generated-sources/annotations未标记为生成的源根,IntelliJ 将触发断点,但不会跳转到关联的源。

  1. 取消将/target/generated-sources/annotations标记为生成的源根
  2. 在生成的源中设置断点
  3. 运行您的代码以触发断点
  4. /target/generated-sources/annotations标记为生成的源根

IntelliJ 现在按预期运行。 在完成断点再次触发后,您可能需要删除/target/generated-sources/annotations

为此问题创建了一个 IntelliJ 错误 请点赞。

您所需要的只是 IDEA 可用的源文件,然后您应该可以进行调试。 确保包含文件的文件夹包含在项目结构设置中,然后您应该能够使用 ctrl+n 打开文件并设置断点。

我的工作解决方法是:

  • 展开生成的工件(jar、war、ear、...)
  • 打开(并反编译)类文件
  • 把断点放在这里

此时 IntelliJ 按预期触发断点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM