是否可以在每行执行后查看堆栈和堆的内容。我希望看到它,因为它会清楚地了解.Net中的内存分配和释放。用你的
如果有任何文件或链接可以解答我的疑问,请分享。
答案 0 :(得分:3)
堆栈:
var stackInfo = new StackTrace();
堆?不,您需要使用分析器,调试器或适当的API。不是一个简单的任务。如果你尝试并遇到困难,最好问一个更具体的问题。
答案 1 :(得分:3)
一旦你解决了这个问题;将WinDbg附加到您的进程,加载调试器扩展。例如:
.load C:\pathtoextensions\psscor4.dll
之后,您可以发出!dumpheap
或!dumpstack
命令。
这两个命令的输出非常原始。 !dumpheap -stat
将为您提供堆的“统计”概述。所有分配的类型,分配的数量和总计的字节数。
这不是一项非常简单的任务。如果您之前没有使用它,那么使用WinDbg需要一段时间才能获得足够的练习。
您可以做的是使用!bpmd
在方法上设置断点,并使用上面提到的命令,然后使用p
命令跳过,并重新运行命令。
我确信还有其他商业工具,例如ANTS Profiler或dotTrace可以完成工作 - 但我对这两种工具都没有很多经验。
一旦你开始,你可以询问(新)有关SOS或Psscor的更具体的问题。