在Visual Studio中调试时看到变量的内存地址?

问题描述 投票:0回答:2

我必须使用Visual Studio(Professional 2017)进行开发,而不是使用我最喜欢的IDE。调试(特别是停止点)时,我使用的面板Locals(通过Debug> Windows> Locals启用)在运行时显示变量的值。我也希望能够在该面板中看到实际的内存地址(例如,确定我是否在使用同一对象,或估计对象使用了多少内存),这是我在其他IDE中所具有的功能。

在Visual Studio中是否有任何技巧或插件可以在运行时查看变量的内存地址?

参考

c# visual-studio debugging ide visual-studio-debugging
2个回答
1
投票

。NET是一个垃圾回收环境。执行GC后,对象将在内存中移动以巩固可用空间。因此,随着GC收集的进行,直接查看内存将查看完全不同的对象。除非您直接在GC内工作或分析内存转储(不执行,所以没有GC),否则直接查看内存是无济于事的。

要查看特定的对象(无论引用了什么对象,请使用“对象ID”。在“本地”,“自动”和“监视”窗口中,右键单击参考,然后选择“制作对象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


0
投票

打开内存窗口

确保在工具>选项(或调试>选项)>调试>常规中选择启用地址级别的调试。

[通过选择绿色箭头,按F5或选择Debug> Start Debugging开始调试。

在调试下> Windows>内存中,选择内存1,内存2,内存3或内存4。(某些Visual Studio版本仅提供一个内存窗口。)

或参考以下链接:https://docs.microsoft.com/en-us/visualstudio/debugger/memory-windows?view=vs-2017Visual Studio, See variable's memory address in watch window

© www.soinside.com 2019 - 2024. All rights reserved.