我正在使用其他人编写的.NET应用程序,我可以看到今天它的刷新非常缓慢。使用Process Explorer,我发现它抛出了成千上万的异常(可能是应用程序以某种方式捕获的)。
如果我无权访问源代码,有没有办法查看这些类型的例外情况? Process Explorer只有一个“Exceps Thrown”计数器。但是有什么工具可以告诉我吗?
答案 0 :(得分:3)
Attach the debugger to the process你应该能够分辨出异常是什么 - 只是不是它们来自源代码的地方。
确保正确设置例外设置。即使没有这个,您也可以始终在“输出”窗口中看到应用程序捕获并忽略的第一次机会异常。这可能是一个合法但不明智的“通过抛出”处理错误,应用程序命中的代码路径。
如果您没有对该计算机的调试访问权限,则可以安装Process Dumper并在选定或所有例外情况下从目标进程(通过.EXE文件名)生成完整或小型转储。但我不认为这适用于托管异常。调试器将适用于托管和本机异常。
答案 1 :(得分:0)
这可以通过Profiling API完成。有一个专用于tracking and handling exceptions的完整API。
答案 2 :(得分:-1)
我相信您可以使用windbg来捕获内存转储并对其进行分析,以便找到这些异常。
我自己没有使用它的经验,使用它可能会导致应用程序脱机。