是否可以在每行执行后查看堆栈和堆的内容。我想看看它,因为它可以清楚地说明 .Net 中的内存分配和释放。与你的
如果有任何文件或链接可以消除我对您的回答的疑虑,请分享。
最佳答案
SOS 或 PssCor是一个很好的起点,旁边WinDbg .
一旦你解决了这个问题;将 WinDbg 附加到您的进程,加载调试器扩展。例如:
.load C:\pathtoextensions\psscor4.dll
之后,您可以发出 !dumpheap
或 !dumpstack
命令。
这两个命令的输出都非常原始。 !dumpheap -stat
将为您提供堆的“统计”概览。所有分配的类型、分配的数量和总字节数。
这不是一项非常简单的任务。如果您以前没有使用过 WinDbg,则需要一段时间才能充分练习。
您可以做的是使用 !bpmd
在方法上设置断点,并使用上面提到的命令,然后使用 p
命令跳过,并重新运行命令。
我确定还有其他商业工具,例如 ANTS Profiler或 dotTrace这可能会完成工作 - 但我对这两种工具都没有太多经验。
开始后,您可以询问有关 SOS 或 Psscor 的(新的)更具体的问题。
关于c# - 我如何在 C#.Net 中查看堆和堆栈中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7547349/