是否有可能记录每个方法调用(堆栈跟踪等),而无需向此方法添加代码。我想要的是检查哪个方法应用程序卡住了,但我不想将日志代码添加到每个方法。自动登录输入到c#项目中的每个方法
它卡住,但不会抛出一个错误,所以尝试抓住堆栈跟踪将无济于事。
是否有可能记录每个方法调用(堆栈跟踪等),而无需向此方法添加代码。我想要的是检查哪个方法应用程序卡住了,但我不想将日志代码添加到每个方法。自动登录输入到c#项目中的每个方法
它卡住,但不会抛出一个错误,所以尝试抓住堆栈跟踪将无济于事。
值得一试AOP-based approach,如PostSharp。您可以使用任何类或单个方法的属性来控制日志记录。例如,PostSharp plugin to integrate with log4net。
尝试“程序资源管理器”来识别被困的呼叫。您可以在
http://technet.microsoft.com/en-us/sysinternals/bb896653
找到它,如果你绝对不能碰的代码在所有然后运行该代码分析器应有助于确定哪些方法卡住,至少你会看到它作为一个长期运行方法提供它没有抛出异常,只是退出。
例如,红门蚂蚁性能分析器就是这样一种工具:
作为除了乔恩的答案我一直在寻找AspectDNG。
使用调试器附加到卡住的进程?