Visual Studio调试器指南---使用线程和进程
使用线程和进程是调试的重要组成部分。 Visual Studio 提供一个界面,在此界面中,可连接正在运行的待调试进程,可查看在那些进程中运行的附加进程和线程的有关信息,还可以控制正在调试的线程和进程的执行。
在计算机科学中,“线程”和“进程”是两个相关的概念。 二者都表示必须按特定顺序执行的指令序列。 但是不同线程或进程中的指令可以并行执行。
进程存在于操作系统内,并对应于用户可看作为程序或应用程序的事物。 另一方面,线程存在于进程内。 因此,线程有时也称作“轻量进程”。 每个进程都由一个或多个线程组成。
多个进程的存在使得计算机能够一次执行多个任务。 而多个线程的存在使得进程能够分解工作以便并行执行。 在多处理器计算机上,进程或线程可以在不同的处理器中运行。 这使得真正的并行处理成为可能。
并不总是能够完全并行处理。 有时候必须要同步线程。 一个线程可能必须等待另一个线程的结果,或者一个线程可能需要独占访问另一个线程正在使用的资源。 同步问题是多线程应用程序中出现 Bug 的一个常见原因。 有时候线程可能最终等待的是永远不会变得可用的资源。 这导致了一种称为“死锁”的状况。
Visual Studio 调试器为调试线程和进程提供了功能强大但易于使用的工具。
线程和进程
在 Visual Studio 中用于处理进程的主要工具有“附加到进程”对话框、“进程”窗口和“调试位置”工具栏。 用于调试线程的主要工具有“线程”窗口、源窗口中的线程标记和“调试位置”工具栏。调试多线程应用程序的主要工具是“并行堆栈”和“并行任务”窗口。
下面的表显示了可用信息以及可在以上每个位置执行的操作:
用户界面 |
可用信息 |
可以执行的操作 |
---|---|---|
“附加到进程”对话框 |
可以附加的可用进程:
|
选择要附加的进程 选择远程计算机 更改用于连接远程计算机的传输类型 |
“进程”窗口 |
附加的进程:
|
工具:
快捷菜单:
|
“线程”窗口 |
当前进程中的线程:
|
工具:
快捷菜单:
其他操作:
|
源窗口 |
左侧滚动条槽中的线程指示符指示单线程或多线程(默认情况下处于关闭状态,可通过使用“线程”窗口中的快捷菜单打开) |
快捷菜单:
|
“调试位置”工具栏 |
|
|
“并行堆栈”窗口 |
|
|
“并行任务”窗口 |
|
|