簡體   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