2012-03-10 72 views
1

在C#中,有没有办法检查CLR为变量分配的内存地址是否落入堆或堆栈的范围内?是否可以检查变量分配的内存地址是否属于堆范围?

+5

为什么它可能很重要? – 2012-03-10 12:37:59

+1

上下文?这是'ref' /'out'参数吗?或者是一个'struct'字段?要么?在其他大多数情况下,你可以*理由*它在哪里生活... – 2012-03-10 12:39:22

+2

@Damien_The_Unbeliveber:只是好奇心 – pencilCake 2012-03-10 12:40:26

回答

1

调试扩展可以使用SOS。这两个命令将显示你所有栈和堆的内容:

!DumpStackObjects 
!DumpHeap 

虽然我真的不知道如何快速找到问题的特定变量。这些命令会输出相当多的变量以供浏览。

+0

+1,打败我吧。您也可以使用DumpHeap上的-type开关来转储给定类型的对象,并且可以使用它来查找结构的实例。 – 2012-03-10 13:25:26

相关问题