![]() |
1
7
我想不出一个简单的方法来用普通的方式来做这个。可以工作的是以编程方式为正在运行的进程创建一个转储文件。您可以使用p/invoke对 dbghelp.dll 常规或生成 cdb.exe 创建转储文件的过程。一旦拥有了该文件,就可以在调试器中打开它,以便以后使用 SOS.dll with cdb.exe/windbg.exe 或者甚至写一个 debugger script 自动转储您想要的数据(大部分)。 |
![]() |
2
4
我相信某种日志框架可以帮助您做到这一点… 退房: 在我的工作场所 log4net 这对我们很有效。 那么,你为什么要把所有的变量都扔掉,以便日后分析呢?您是否考虑先编写代码测试,以便减少对调试器的依赖,并让一套自动测试为您检查值? |
![]() |
3
2
过去我用过 YourKit .NET探查器以分析.NET应用程序。 Snapshot documentation Profiler API 可用于以编程方式转储快照以供日后查看。 代码方面,这看起来很简单,如下所示:
我相信以后您可以将快照文件加载到yourkit图形用户界面中来查看它们。 如果其他一些流行的人物像JetBrains,我不会感到惊讶。 dotTrace Performance 还有红门 ANTS Performance Profiler |
![]() |
4
1
为此你可以使用 WMemoryProfiler 到
为了实现这一点,您当然需要windbg,但是wmemoryProfiler的API是完全管理的,您基本上可以自行调试您的进程。库处理通常的调试器异常,因为它确实将windbg包装在一个易于访问的库中。 下面的代码将System.Threading.Thread对象的所有实例都获取到一个对象数组中。这样,您就可以在运行时为自己的应用程序对象编写可视化工具。另一个重载只提供所有AppDomain中的所有对象。
因为它是一个围绕windbg的包装器,所以您还可以动态创建内存转储,然后从进程中加载内存转储,以从转储中提取对象数据以进行可视化。商业内存分析程序(例如,来自科技公司的memoryprofiler)多年来一直采用这种技术,但是当您有一个巨大的内存转储时,这是非常缓慢的,因为它们也使用windbg作为转储分析器。 |
![]() |
5
0
Intellitrace 随Visual Studio的最终版本一起提供的工具。这就是你所描述的——它记录了你的应用程序中发生的事情,并允许你在不执行程序的情况下调试它,同时将鼠标悬停在变量和所有其他调试窗口上以帮助你。 |
![]() |
danny · 如何使数组或映射返回变量(而不是其值) 1 年前 |
![]() |
Sher Meen · 我需要列出一个循环中临时变量中存储的多个值 2 年前 |
![]() |
Noah Hellyer · 如何删除python中7个字符长的所有零 2 年前 |
![]() |
Gabbisen · 从列表编辑变量(不能使用字典) 3 年前 |
![]() |
cred · 为什么我请求的变量在从另一个类调用时显示为0.0? 3 年前 |
|
lorny · R循环中的自动递增变量名 7 年前 |