簡體   English   中英

在 Visual Studio 中調試時查看變量的內存地址?

[英]See memory adress of a variable when debugging in Visual Studio?

我必須使用 Visual Studio(Professional 2017)進行開發,而不是我最喜歡的 IDE。 在調試(尤其是停止指向)時,我使用面板Locals (通過Debug > Windows > Locals啟用),它顯示運行時變量的值。 我也希望能夠在該面板中看到實際的內存地址(例如,確定我是否在使用同一個對象,或者估計對象使用了多少內存)——這是我在其他 IDE 中的一個功能.

是否有任何技巧或插件可以在 Visual Studio 運行時查看變量的內存地址?

參考

.NET 是一個垃圾收集環境。 當執行 GC 時,對象在內存中移動以合並可用空間。 因此,當 GC 收集發生時,直接查看內存將查看完全不同的對象。 除非您直接在 GC 中工作或分析內存轉儲(沒有執行,所以沒有 GC),否則直接查看內存是沒有幫助的。

要查看特定對象——任何可能引用它的引用——請使用“對象 ID”。 在 Locals、Autos 和 Watch 窗口中,右鍵單擊引用並選擇“Make Object Id”。 生成一個序列符號$1 , $2 , ... 1. 用於注釋值列中對該對象的任何引用的顯示; 2. 可以直接跨調試器使用以查看該對象(包括在那里執行的代碼片段內的即時窗口中:例如,我本周早些時候使用的?local.Prop.Equal($2.Prop) )。 有關示例,請參閱https://docs.microsoft.com/en-us/visualstudio/debugger/watch-and-quickwatch-windows?view=vs-2019#bkmk_objectIds

如果您真的想查看變量的內存,您可以在 Watch 和 Intermediate 窗口中使用&

例如,如果您有一個變量foo&foo會顯示地址,但正如另一個答案中所述,由於在 GC 期間壓縮移動對象,這可能會發生變化。

打開內存窗口

確保在“工具”>“選項”(或“調試”>“選項”)>“調試”>“常規”中選擇了啟用地址級調試。

通過選擇綠色箭頭、按 F5 或選擇 Debug > Start Debugging 開始調試。

在“調試”>“Windows”>“內存”下,選擇“內存 1”、“內存 2”、“內存 3”或“內存 4”。(某些版本的 Visual Studio 僅提供一個內存窗口。)

或參考以下鏈接: https : //docs.microsoft.com/en-us/visualstudio/debugger/memory-windows?view=vs-2017 Visual Studio,在觀察窗口中查看變量的內存地址

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM