如何在C#.Net中查看堆内堆栈和堆栈

fun*_*gdu 6 .net c# heap stack

是否有可能在每行执行后看到堆栈和堆的内容.我希望看到它,因为它会清楚地了解.Net中的内存分配和释放.跟你的

如果有任何文件或链接可以解答我对您的回答的怀疑请分享.

vcs*_*nes 5

SOS 或PssCor以及WinDbg都是一个很好的起点。

一旦你解决了这个问题;将 WinDbg 连接到您的进程,加载调试器扩展。例如:

.load C:\pathtoextensions\psscor4.dll
Run Code Online (Sandbox Code Playgroud)

之后,您可以发出!dumpheap!dumpstack命令。

这两个命令的输出都非常原始。!dumpheap -stat将为您提供堆的“统计”概述。所有分配的类型、分配的数量以及总字节数。

这不是一个超级简单的任务。如果您以前没有使用过 WinDbg,那么需要一段时间才能对它进行足够的练习。

您可以做的是使用 在方法上设置断点!bpmd,并使用上面提到的命令,然后使用该p命令单步执行,然后重新运行命令。

我确信还有其他商业工具(例如ANTS ProfilerdotTrace)可以完成这项工作 - 但我对这两种工具都没有太多经验。

开始后,您可以询问有关 SOS 或 Psscor 的(新)更具体问题。