我有一个常规的C#代码。我也不例外。我想以编程方式记录当前堆栈跟踪以进行调试。例:public void executeMethod() { logStackTrace(); method();}
3 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
看一下System.Diagnostics名称空间。里面有很多东西!
System.Diagnostics.StackTrace t = new System.Diagnostics.StackTrace();
兜一圈学习引擎盖下的情况,这真的很好。
我建议您看看可以实现您的目的的日志记录解决方案(例如NLog,log4net或Microsoft模式和实践企业库)。祝你好运!
FFIVE
TA贡献1797条经验 获得超6个赞
一种替代方法System.Diagnostics.StackTrace是使用System.Environment.StackTrace,它返回堆栈跟踪的字符串表示形式。
另一个有用的选项是在Visual Studio中使用$CALLER和$CALLSTACK 调试变量,因为可以在运行时启用它,而无需重建应用程序。
慕斯王
TA贡献1864条经验 获得超2个赞
您也可以在Visual Studio调试器中执行此操作,而无需修改代码。
在要查看堆栈跟踪的位置创建一个断点。
右键单击断点,然后在VS2015中选择“操作...”。在VS2010中,选择“当被点击时...”,然后启用“打印消息”。
确保选择“继续执行”。
输入一些您想打印的文字。
在任何要查看堆栈跟踪的位置添加$ CALLSTACK。
在调试器中运行程序。
当然,如果您在另一台计算机上运行代码,这无济于事,但是能够自动吐出堆栈跟踪信息而又不影响发行代码或什至无需重启程序都非常方便。
- 3 回答
- 0 关注
- 714 浏览
添加回答
举报
0/150
提交
取消