我想知道是否有办法返回Visual Studio在程序运行时所采用的路径。例如,如果不设置断点,是否可以确切地知道当我单击我创建的Web应用程序上的按钮时会发生什么?就像我点击了一个有动作的按钮一样,是否有一些Visual Studio可以吐出的信息告诉我发生了什么? (其功能在于使用哪些文件等。基本上是“代码路径”)。
要添加我的问题,我想使用这样的东西来帮助调试问题。我想确切知道当我执行某种操作时发生了什么(在我的示例中按下按钮)。如果我知道每个“代码路径”,我可以更好地解决我遇到的问题。
答案 0 :(得分:1)
如果我正确理解了您的问题,那么您正在寻找Environment.StackTrace
StackTrace属性按反向时间顺序列出方法调用,即首先描述最近的方法调用,并为堆栈上的每个方法调用列出一行堆栈跟踪信息。但是,由于优化期间发生的代码转换,StackTrace属性可能不会报告与预期一样多的方法调用。
您可以做的其他事情是添加调试日志条目以了解正在进行的操作。它可能更有用,因为您可以添加额外的自定义数据。
不确定您的项目是否已有日志框架。如果你没有任何log4net可能是一个不错的选择
答案 1 :(得分:0)
将我的评论转换为答案,以便有一个解决原始问题的答案:
使用性能分析器,它旨在观察执行路径(通常是为了帮助您找到瓶颈等,但它也适用于您的目的)。一个好的性能分析器可以让你深入了解任何方法,它所调用的方法,频率等等。
答案 2 :(得分:0)
您可以将调用堆栈结果打印到Visual Studio中的输出窗口。您仍然需要使用断点,但那些不会停止应用程序的断点。要做到这一点:
$CALLSTACK
。我不记得"什么时候打..." Visual Studio的Express版本中提供了该选项。
还可以打印出一些其他数据而不会破坏执行,例如:上一个功能,进程ID等。详细信息实际上可以在" Hit Hit ..."窗口。