我試圖將斷點放入GoogleAppEngine源(SDK 1.7.0),但IDEA Ultimate(11.0.2)只是告訴我Warning: No executable code found at line 482 in class com.google.appengine.api.memcache.AsyncMemcacheServiceImpl
。無法在Intellij IDEA中設置Java斷點
當我從單元測試運行代碼並啓動開發服務器時,我得到這個錯誤消息。
這是相當annonying。無論如何,我的源代碼位於外部(相對於IDEA主目錄和項目主目錄)目錄,我的jar文件位於Appengine SDK lib目錄下。
我的jar文件作爲項目庫添加到模塊中,並且我的源文件被附加到此庫。我也玩弄模塊依賴關係,但沒有任何運氣。最後,我決定把這個庫放到編譯範圍中,但是由於SDK在運行時提供了這些jar,所以我決定退回到提供範圍。
我還玩過模塊依賴關係選項卡上的導出複選框,但根據web help的說法,我認爲這是無關緊要的,導出只有在擁有從屬模塊時才重要,並且希望使這些模塊中的庫可用好。
無論如何,這個問題也產生了4 years ago也。所以我現在想知道是否真的很難解決這個問題?
我現在非常失望。到目前爲止,我對IDEA沒有任何問題...我也看到了這個問題arised to other people,所以這不是唯一的我猜。
任何幫助表示讚賞。
我編輯我的問題,由於我下面javap
實驗:看來,階級和源不不同步。我從SVN中檢出了1.7.0的相關修訂版本,並且使用的是1.7.0 SDK,因此它們不應該不同步。
嗯......這聽起來很符合邏輯... :)我會試着弄清楚它是如何構建的,但是因爲我不是編譯代碼的人(它是Google),所以我不知道我該怎麼做。對此有何建議? – 2012-07-21 11:30:52
好的......我剛剛發現你的其他答案與如何查看調試信息是否可用有關......你真的是一個有幫助的人! :)我會試試看。 – 2012-07-21 11:38:32
所以。我嘗試了成功反彙編類的'javap -v'命令。現在我所看到的只是保證了我以前的懷疑。反彙編的文件說'LineNumberTable:line 481:0'這正是方法頭的行號,我把我的斷點放入(我把它放在下一行)。所以看起來,課堂和來源是同步的(無論如何,這並不是一個大驚喜)。 – 2012-07-21 11:55:12