2015-11-03 210 views
1

我在Eclipse中調試我的應用程序。最後,我在一個觸發下一行代碼中的錯誤的狀態中達到了一個斷點。如何跳過執行一行代碼?

由於班級發生重大變化,最可能的解決方案是刪除該行代碼。

當然,我現在可以做到這一點:刪除線,重新編譯和再現sitatuation。但是,由於很難重現該錯誤,我現在可以簡單地跳過執行該代碼行嗎?例如。我可以在Eclipse中設置「指令指針」嗎?

事情我做:

  • 我不想F6(步過)做的,因爲這將執行該行。
  • 此外,「運行到遊標」不是我想要的,因爲它也會執行有問題的行。
  • 註釋掉的代碼根據How to modify Java code during debugging,但重新執行的方法,從而改變了狀態
  • 我試圖找到this question一個答案,但我不只是想運行一個單一的代碼行但其餘的都是。
  • This question只有在兩者之間運行代碼的答案。
  • drop to frame功能也沒有幫助。

鏈接的問題是從2009年到2013年,所以我希望能得到新的答案。

我在使用Eclipse 4.5.1(Mars.1),最新的正式版本在詢問時。

+0

你可以在調試時註釋掉這條線 –

+0

try-catch怎麼樣?並在catch語句中放置一個斷點。這將在每次異常時停止斷點 – Tim

+0

@Tim:沒有異常 –

回答

2

如果您想要在要跳過的行之後執行該行。當您到達要跳過的行之前的行時,選擇代碼並右鍵單擊,從菜單中選擇「檢查」。這將執行選定的代碼並在彈出窗口中提供結果。

如果您知道必須跳過的行。你可以把它們放在if語句中,並在eclipse中的變量視圖中改變布爾值的值。然後進入其他行。 (使用代碼從註釋)

if (skipped){ 
    //yourcode 
    }; 

另外,也可以在Eclipse中創建表達式。

我錯過的一件事是eclipse也支持熱代碼交換。您可以註釋掉該行並保存。它會將調試器控件放回到方法的起始位置。熱部署僅支持方法實現中的代碼更改。如果您添加新類或新方法,仍然需要重新啓動。如果你有服務器在eclispe,這裏是你如何能做到這一點http://www.mkyong.com/eclipse/how-to-configure-hot-deploy-in-eclipse/

+0

我正在使用該方法並且它是有用的。只需創建if(跳過){// yourcode};並且打開表達式,改變跳過= true或者跳過= false – hurricane

+0

這很危險:如果你在調試過程中這樣做,你可能會忘記更改並意外提交它們,並且它會成爲產品的一部分。 (希望單元測試能夠抓住它) –