2013-10-07 52 views
3

當我不處於斷點時,是否可以查看具有實時值的手錶列表?即使未在Delphi IDE中逐步調試,也可以訪問手錶項目

  • 我在TDatamodule的公共部分定義了一個整數Mycounter。
  • 我將它添加到監視列表中。
  • 我可以看到它的值正在更新監視列表中,只是我正在逐行調試或者我正在一個rbeakpoint。

有沒有一種方法,以保持在觀察名單中看到它的值,即使控制返回到VCL線程(=當我按下F9)

回答

5

無法從IDE執行此操作。觀察評估要求暫停進程中的所有線程,以便調試器可以讀取內存並執行評估。

如果您希望在沒有調試器中斷的情況下查看值被刷新,那麼您很可能必須將代碼添加到您的應用程序中以處理感興趣的值。例如,只要值改變,就將代碼添加到應用程序輸出調試消息(例如OutputDebugString(),CodeSite等)。您當然需要在單獨的查看器中查看信息。

+0

非常感謝大衛。像平常一樣急劇切割。 – LaBracca

10

正如David所說,手錶是不可能的,但是您可以通過向變量添加數據斷點並在每次更改時將其轉儲到事件日誌的值來關閉它。

步驟

  • 找你要跟蹤的變量的地址。
  • 添加databreakpoint
  • 打開事件日誌調試窗口

獲取的變量

  • 的地址我已經用在我的例子變量I。按你的榜樣,這應該是@Mycounter

Get the address

添加數據斷點

  • 使用可變
  • 取消選中的地址Break複選框
  • 評估表達PInteger($45622C)^
  • 日誌結果

Setting the databreakpoint

查看結果

enter image description here

+1

感謝您對數據斷點的分步說明。我不需要經常這樣做,我很少能夠實現它。這將有所幫助。 – jrodenhi

+0

@jrodenhi - 哈哈。這並不難,但是在我正確地發佈之前,它也花了我一些「時間」。 –

相關問題