使用“线程”窗口
“线程”窗口包含每行表示应用程序中一个线程的表。 默认情况下,该表列出应用程序中的所有线程,但您可以筛选列表以仅显示您感兴趣的线程。 每列都包含不同类型的信息。 您还可以隐藏某些列。 如果显示所有列,将从左到右显示以下信息:
标志列,您可以在此处标记要格外关注的线程。
活动线程列,此处黄色箭头指示一个活动线程。 箭头的轮廓指示执行在调试器中分解的线程。
“ID”列,包含每个线程的标识号。
“托管 ID”列,包含托管线程的托管标识号。
“类别”列,将线程划分为用户界面线程、远程过程调用处理程序或辅助线程。 一个特殊类别标识应用程序的主线程。
“名称”列,如果有线程,则按名称标识每个线程,否则标识为“<无名称>”。
“位置”列,显示线程运行的位置。 可以展开此位置以显示线程的完整调用堆栈。
“优先级别”列,包含系统已向每个线程分配的优先级。
“关联掩码”列,高级列,通常隐藏。 此列显示每个线程的处理器关联掩码。 在多处理器系统中,关联掩码确定线程可以在哪些处理器上运行。
“已挂起”列,包含挂起项计数。 此计数确定线程是否可以运行。
“进程名称”列,包含每个线程所属的进程。 在调试多个进程时,此列会很有用,但此列通常隐藏。
切换活动线程
任意执行以下步骤之一:
双击任一线程。
右击一个线程,再单击“切换到线程”。
黄色箭头会出现在新活动线程的旁边。 箭头的灰色轮廓标识执行在调试器中分解的线程
显示线程调用堆栈
在多线程程序中,每个线程都有自己的调用堆栈。 “线程”窗口提供了一种查看这些堆栈的简便方法。
查看线程的调用堆栈,在“位置”列中,单击线程位置旁边的倒三角形。 此位置将展开以显示线程的调用堆栈。
扩充阅读:
使用Visual Studio 2010调试并行程序
Visual Studio 2010对并行程序的调试提供了强大的手段,给程序设计好断点以后,可以使用Threads窗口查看当前程序的所有线程:
在图 19‑9中双击某行,可以让指定的线程成为当前“激活”的“被调试”的线程。
另外,Parallel Tasks窗口展示了当前程序所运行的所有任务:
在Parallel Stacks窗口中,则可以直观地看到每个线程的调用堆栈:
有关Visual Studio 2010调试器的使用方法,请查询MSDN。本书不再赘述。
另外,
扩充阅读:
使用Visual Studio 2010调试并行程序
Visual Studio 2010对并行程序的调试提供了强大的手段,给程序设计好断点以后,可以使用Threads窗口查看当前程序的所有线程:
在图 19‑9中双击某行,可以让指定的线程成为当前“激活”的“被调试”的线程。
另外,Parallel Tasks窗口展示了当前程序所运行的所有任务:
在Parallel Stacks窗口中,则可以直观地看到每个线程的调用堆栈:
有关Visual Studio 2010调试器的使用方法,请查询MSDN