2010-11-03 46 views
40

使用VS開發C++時,您擁有數據斷點的驚人功能,當內存中的某個地址處的數據發生更改時會觸發這些功能。java/eclipse中的數據斷點

在eclipse中開發java時有沒有類似的功能?

謝謝!

編輯:關於「掛起時值改變」功能:我的印象是執行必須仍然到達斷點所在的線。事情是我希望它隨着價值的變化觸發任何地方。

回答

59

您可以在現場設置一個觀察點:將光標置於字段所聲明的線,並選擇Run -> Toggle Watchpoint
或就在該行的左邊空白處雙擊設置斷點菜單。

添加它後,您可以更改觀察點的屬性,如suspend on field accesssuspend on field modification。只是在觀察點在左邊空白處單擊鼠標右鍵,並選擇Breakpoint Properties...

搜索幫助觀察點,以獲得更多的信息:

觀察點是停止的應用程序,只要執行一個特殊的斷點值給定表達式的變化,而不指定它可能發生的位置。 ...

+0

完美!正是我需要的! – clamp 2010-11-03 11:54:54

+3

這很有用(和我+1),但它仍然不是問題的答案。這個中斷*任何*聲明的實例,而不是特定的實例。 – 2011-08-11 17:42:15

+0

當字段不是最終時,我只有可用的觀察點選項。我如何觀看最終對象? (我想看看什麼時候一個項目添加到地圖或從地圖檢索) – dj18 2016-05-13 15:09:53

1

最接近的是編輯斷點屬性。您可以添加條件來檢查不同的值。另一種方法可能是爲setter方法添加一個斷點。

您可以通過右鍵單擊斷點視圖中已設置的斷點來設置斷點屬性。

3

在斷點屬性下,您可以選擇使其成爲條件並檢查單選按鈕「值更改時掛起」。

+0

謝謝,但我如何提供對象或變量,我想監視該對象? – clamp 2010-11-03 10:35:01

+0

您在下面的字段中輸入。當然,這與變量發生變化時不一樣,但如果你的程序經常遇到瓶頸,那麼你可以在那裏放置一個斷點,理論上只有當某個值發生變化時纔會中斷。 – Neil 2010-11-03 10:37:51

3

右鍵單擊斷點並選擇Breakpoint properties

在打開屏幕,選擇:Conditional -> Suspend when value changes

+0

謝謝,但我如何提供對象或變量到我想要監視的對象? – clamp 2010-11-03 10:34:19

+0

在單選按鈕下方的字段中輸入變量名稱(類似this.foo)。有自動完成可用。 – 2010-11-03 10:38:12

1

據我所知,是在Eclipse中沒有這樣的通用功能。但是,您可以給現有的斷點提供一些條件:

在您的代碼的某處添加斷點。然後,在「斷點」視圖中,右鍵單擊它,然後選擇「斷點屬性」。在面板中,您可以添加必須驗證的條件,以使應用程序在此斷點處停止(例如if (foo > 0))。

這不完全是你想要的,但我不認爲Eclipse提供這樣的功能。

6

,使用變量視圖:

  • 右鍵單擊該字段,然後選擇「切換觀察點」,然後
  • 再次右鍵單擊相同的實例,然後選擇「實例斷點... 「它允許您限制給定實例的特定斷點。

請注意,性能可能不如內存硬件斷點(例如在VC++中)。