天天看点

一些可能没用过的调试窗口

首先说明:如果没有进入调试模式的话,默认的调试窗口如下:

<a href="http://images.cnblogs.com/cnblogs_com/LoveJenny/201112/201112080641319559.png"></a>

开始前的准备:

新建控制台程序DebugWindowDemo:

修改Program.cs 的代码为:

按F5,开始运行:

由于Debugger.Break();

所以当执行到这里的时候,Debugger会中断。

这个时候再看看调试窗口会发现多了几个窗口:

<a href="http://images.cnblogs.com/cnblogs_com/LoveJenny/201112/201112080641347381.png"></a>

点击调试-&gt;窗口-&gt;并行任务,界面如下:

<a href="http://images.cnblogs.com/cnblogs_com/LoveJenny/201112/201112080641392020.png"></a>

按下F5,继续运行:

双击查看相应等待的任务,就可以知道这个工作线程为什么等待了。

例如:

<a href="http://images.cnblogs.com/cnblogs_com/LoveJenny/201112/201112080641478178.png"></a>

继续按F5,运行,你应该会看到:

<a href="http://images.cnblogs.com/cnblogs_com/LoveJenny/201112/201112080641502686.png"></a>

总之关于当前运行的并行任务你都可以看的到。

<b>关闭程序,重新</b><b>F5</b><b>,进入调试模式</b><b></b>

<b></b>

选择调试-&gt;窗口-&gt;并行堆栈

可以看到:

<a href="http://images.cnblogs.com/cnblogs_com/LoveJenny/201112/201112080641551545.png"></a>

其中蓝线代表当前正在执行的线程。

点击切换方法视图

<a href="http://images.cnblogs.com/cnblogs_com/LoveJenny/201112/201112080642036548.png"></a>

<a href="http://images.cnblogs.com/cnblogs_com/LoveJenny/201112/201112080642055699.png"></a>

点击调试-&gt;窗口-&gt;线程:

<a href="http://images.cnblogs.com/cnblogs_com/LoveJenny/201112/201112080642099193.png"></a>

当前控制台的所有线程都在这里。

在线程上点击右键可以冻结线程:

<a href="http://images.cnblogs.com/cnblogs_com/LoveJenny/201112/201112080642148085.png"></a>

冻结线程也就是Pause线程,

冻结的线程可以被解冻,也就是Resume。

其他的窗口:

调试-&gt;窗口-&gt;模块:可以看到当前程序加载的所有模块。

<a href="http://images.cnblogs.com/cnblogs_com/LoveJenny/201112/201112080642201711.png"></a>

调试-&gt;窗口-&gt;进程:

<a href="http://images.cnblogs.com/cnblogs_com/LoveJenny/201112/201112080642236219.png"></a>

调试-&gt;窗口-&gt;反汇编:

<a href="http://images.cnblogs.com/cnblogs_com/LoveJenny/201112/201112080642253843.png"></a>

调试-&gt;窗口-&gt;寄存器:

<a href="http://images.cnblogs.com/cnblogs_com/LoveJenny/201112/201112080642276582.png"></a>

调试-&gt;窗口-&gt;调用堆栈:

调用堆栈窗口是比较常用的窗口:

<a href="http://images.cnblogs.com/cnblogs_com/LoveJenny/201112/201112080642315375.png"></a>

上图表示先调用A方法,接着B方法,接着C方法。

也可以认为是C方法是B调用,而B方法是A调用的。

其他窗口比较常用,就不介绍了,是不是有一些你没用到的窗口呢?

本文转自LoveJenny博客园博客,原文链接:http://www.cnblogs.com/LoveJenny/archive/2011/12/08/2280157.html,如需转载请自行联系原作者

继续阅读