VS2010下多线程的调试

来源:互联网 发布:招生管理系统sql论文 编辑:程序博客网 时间:2024/06/06 02:12

使用“线程”窗口

“线程”窗口包含每行表示应用程序中一个线程的表。 默认情况下,该表列出应用程序中的所有线程,但您可以筛选列表以仅显示您感兴趣的线程。 每列都包含不同类型的信息。 您还可以隐藏某些列。 如果显示所有列,将从左到右显示以下信息:

标志列,您可以在此处标记要格外关注的线程。

活动线程列,此处黄色箭头指示一个活动线程。 箭头的轮廓指示执行在调试器中分解的线程。

“ID”列,包含每个线程的标识号。

“托管 ID”列,包含托管线程的托管标识号。

“类别”列,将线程划分为用户界面线程、远程过程调用处理程序或辅助线程。 一个特殊类别标识应用程序的主线程。

“名称”列,如果有线程,则按名称标识每个线程,否则标识为“<无名称>”。

“位置”列,显示线程运行的位置。 可以展开此位置以显示线程的完整调用堆栈。

“优先级别”列,包含系统已向每个线程分配的优先级。

“关联掩码”列,高级列,通常隐藏。 此列显示每个线程的处理器关联掩码。 在多处理器系统中,关联掩码确定线程可以在哪些处理器上运行。

“已挂起”列,包含挂起项计数。 此计数确定线程是否可以运行。

“进程名称”列,包含每个线程所属的进程。 在调试多个进程时,此列会很有用,但此列通常隐藏。

切换活动线程

任意执行以下步骤之一:

           双击任一线程。

           右击一个线程,再单击“切换到线程”。

           黄色箭头会出现在新活动线程的旁边。 箭头的灰色轮廓标识执行在调试器中分解的线程

显示线程调用堆栈

在多线程程序中,每个线程都有自己的调用堆栈。 “线程”窗口提供了一种查看这些堆栈的简便方法。

查看线程的调用堆栈,在“位置”列中,单击线程位置旁边的倒三角形。 此位置将展开以显示线程的调用堆栈。 

扩充阅读:
使用Visual Studio 2010调试并行程序
 Visual Studio 2010对并行程序的调试提供了强大的手段,给程序设计好断点以后,可以使用Threads窗口查看当前程序的所有线程:


在图 19‑9中双击某行,可以让指定的线程成为当前“激活”的“被调试”的线程。
 另外,Parallel Tasks窗口展示了当前程序所运行的所有任务:

在Parallel Stacks窗口中,则可以直观地看到每个线程的调用堆栈:

 
有关Visual Studio 2010调试器的使用方法,请查询MSDN。本书不再赘述。
0 0