当我们启动windbg后,我们就能看到Windbg的样子了,如下:
本部分讨论 WinDbg 图形用户界面的元素。 这些元素包括以下各项:菜单、工具栏和快捷键。菜单有:文件菜单、编辑菜单、视图菜单、调试菜单、窗口菜单、帮助菜单。下面分别一 一简单介绍下。
一、菜单
1.1、文件菜单
- 打开源文件
加载特定的源文件。此命令相当于按 CTRL + O 或单击开放源代码文件 (Ctrl + O) 按钮 ()。当您单击打开源文件,则打开源文件对话框随即出现。 若要打开一个文件,请执行以下操作:
-
在中查找列表中,选择该文件所在的目录。 默认情况下,选择上一次打开的目录。
-
在中类型的文件列表中,选择你想要打开的文件的类型。 仅使用所选扩展的文件将显示在打开源文件对话框。 请注意 还可以使用中的通配符模式文件名框,以显示仅具有特定扩展名的文件。 在更改之前的会话中保留新的通配符模式。 可以使用通配符模式,之间用分号分隔的任意组合。 例如,输入 *。非独占;*.H;*.CPP显示具有这些扩展名的所有文件。 最大的行中的字符数为 251。
-
如果找到该文件所需,双击文件名称,或单击文件名称并单击打开。若要放弃更改并关闭对话框,请单击取消。
-
- 关闭当前窗口
单击关闭当前窗口上文件菜单关闭的活动的调试信息窗口。此命令相当于按下 CTRL + F4。此外可以通过单击关闭调试的信息窗口关闭在 WinDbg 窗口中信息窗口的右上角的按钮。
- 打开可执行文件
单击打开可执行文件上文件菜单以启动新的用户模式进程,并对其进行调试。此命令相当于按下 CTRL + E。 仅当 WinDbg 处于休眠模式时,可以使用此命令。
当您单击打开可执行文件,则打开可执行文件对话框随即显示,并且您可以执行以下操作:
-
输入中的可执行文件的完整路径文件名框。 或者,可以使用对话框的查找并选择适当的文件。 必须指定可执行文件的确切路径。 与 Microsoft Windows 不同运行对话框和命令提示符窗口,打开可执行对话框不会搜索当前路径的可执行文件的名称。
-
如果你想要使用的可执行文件使用命令行参数,输入中对其自变量框。
-
如果你想要更改的开始目录从默认目录中输入该目录路径开始目录框。
-
如果你想要附加到任何的 WinDbg子进程(其他进程的原始目标进程启动),选择调试子进程也。
进行选择后,单击打开。
请注意 时使用此命令以打开源文件,该文件的路径自动追加到源路径。
如果 WinDbg 连接到进程服务器,则无法使用打开可执行文件命令。
-
-
附加到进程
单击附加到进程上文件菜单调试当前正在运行的用户模式应用程序。此命令相当于按 F6。 仅当 WinDbg 处于休眠模式时,可以使用此命令。
当您单击附加到进程,则附加到进程对话框随即显示,并且您可以执行以下操作:
-
选择包含正确的进程 ID 和名称的行 (或输入中的进程 ID进程 ID框)。 请注意 列出的每个进程具有关联的加号 (+)。 可以单击加号以显示有关该进程的命令行、 服务和子进程的信息。
请注意 如果 WinDbg 连接到进程服务器附加到进程对话框将显示在远程计算机运行的进程。 进程服务器的详细信息,请参阅激活智能客户端。
-
如果你想要 noninvasively(非侵入) 附加到进程,请选择Noninvasive复选框。
进行选择后,单击确定。
-
-
打开故障转储文件
单击打开故障转储文件菜单以打开用户模式或内核模式崩溃转储文件,并对其进行分析。此命令相当于按下 CTRL + D。 仅当 WinDbg 处于休眠模式时,可以使用此命令。
当您单击打开崩溃转储,则打开崩溃转储对话框随即出现。 输入中的故障转储文件的完整路径文件名框中,或使用查找列表以查找并选择正确的路径和文件名称。 (转储文件通常具有.dmp 或.mdmp 扩展名结尾)。
选择适当的文件后,单击打开。
- 连接到远程会话
单击连接到远程会话上文件菜单使 WinDbg 调试客户端并连接到活动的调试服务器。此命令相当于按下 CTRL + R。 仅当 WinDbg 处于休眠模式时,可以使用此命令。不能使用此命令连接到进程服务器或 KD 连接服务器。为此,使用文件 |连接到远程存根 (stub)相反。
当您单击连接到远程会话,则连接到远程调试器会话对话框随即出现。 可以使用此对话框中,输入远程连接参数,或若要浏览的调试服务器列表。
若要手动指定远程连接参数,请输入中的以下字符串之一连接字符串框:
textnpipe:server=Server,pipe=PipeName[,password=Password] tcp:server=Server,port=Socket[,password=Password][,ipversion=6] tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password] ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password] ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password]
在前面的选项中的各种参数具有以下可能值:
Server
创建调试服务器的计算机的网络名称。 不要在前面加反斜杠此名称 (\)。PipeName
如果使用 NPIPE 或 SPIPE 协议PipeName是创建服务器时提供给管道的名称。Socket
如果使用 TCP 或 SSL 协议套接字是创建服务器时使用的同一套接字端口号。COMPort
如果你使用 COM 协议COMPort指定要使用的 COM 端口。 "COM"前缀是可选的 (例如,"com2"和"2"正确无误)。BaudRate
如果你使用 COM 协议BaudRate应与您选择创建服务器时的波特率。COMChannel
如果你使用 COM 协议COMChannel应匹配创建服务器时选择频道号。Protocol
如果使用 SSL 或 SPIPE 协议协议应与创建服务器时使用的安全协议。Cert
如果使用 SSL 或 SPIPE 协议,则应使用完全相同certuser =Cert或machuser =Cert已使用的参数创建服务器时。clicon
指定调试服务器将尝试连接到客户端通过反向连接。 客户端必须使用clicon当且仅当服务器使用的clicon。 在大多数情况下,调试客户端启动调试服务器之前,使用反向连接时。密码
如果创建服务器时使用一个密码,则必须提供密码创建调试客户端。 此值必须匹配的原始密码。 密码是区分大小写。 如果提供了错误的密码,则错误消息将指定"错误 0x80004005"。ipversion=6
(调试工具的 Windows 6.6.07,之前仅)强制将 IP 版本 6 调试器而不是版本 4 使用 TCP 连接到 Internet 时。 在 Windows Vista 和更高版本中,调试器将尝试自动默认为 IP 版本 6,这使得此选项不必要。而不是手动指定的远程连接参数,可以按浏览按钮连接到远程调试器会话对话框,并使用浏览远程服务器对话框。
在浏览远程服务器对话框文字框中,输入运行调试服务器的计算机的名称。 (两个初始反斜杠是可选的:"MyBox"和"\MyBox"均正确。)然后,按刷新按钮。服务器区域列出的所有调试该计算机运行的服务器。 选择任何列出的服务器,然后按 ENTER 或单击确定。 (您还可以双击一个列出的服务器。)现在将出现您所选的调试服务器的正确的连接字符串连接字符串框中连接到远程调试器会话对话框。如果服务器是受密码保护,包括连接字符串密码 =。必须将为星号 (* *) 与实际密码。指定服务器名和密码后,单击确定来打开连接。此列表中的服务器浏览远程服务器对话框还可以包括服务器不再存在,但未正确关闭。 如果您连接到这些不存在服务器之一,将收到一条错误消息。服务器列表不包括的进程服务器和 KD 连接服务器;可以列出这些服务器只能通过使用文件 |连接到远程存根命令或通过运行cdb QR Server从命令提示符窗口。
- 连接到远程存根
单击连接到远程存根上文件菜单使 WinDbg 智能客户端并连接到进程服务器或 KD 连接服务器。此命令相当于使用用户模式或内核模式-k kdsrv 传输协议命令行选项中的-premote 命令行选项。 仅当 WinDbg 处于休眠模式时,可以使用此命令。您不能使用此命令连接到调试服务器。当您单击连接到远程存根,则连接到远程的存根 (stub) 服务器对话框随即出现。 可以使用此对话框中,输入远程连接参数,或若要浏览的进程服务器和 KD 连接服务器的列表。
若要手动指定远程连接参数,请输入中的以下字符串之一连接字符串框:
textnpipe:server=Server,pipe=PipeName[,password=Password] tcp:server=Server,port=Socket[,password=Password][,ipversion=6] tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password] ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password] ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password]
在前面的选项中的各种参数具有以下可能值:
Server
创建进程服务器或 KD 连接服务器的计算机的网络名称。 不要在前面加反斜杠此名称 (\)。PipeName
如果使用 NPIPE 或 SPIPE 协议PipeName是创建服务器时提供给管道的名称。Socket
如果使用 TCP 或 SSL 协议套接字是创建服务器时使用的同一套接字端口号。COMPort
如果你使用 COM 协议COMPort指定要使用的 COM 端口。 "COM"前缀是可选的 (例如,"com2"和"2"正确无误)。BaudRate
如果你使用 COM 协议BaudRate应与您选择创建服务器时的波特率。COMChannel
如果你使用 COM 协议COMChannel应匹配创建服务器时选择频道号。Protocol
(Windows 2000 及更高版本)如果使用 SSL 或 SPIPE 协议协议应与创建服务器时使用的安全协议。Cert
(Windows 2000 及更高版本)如果使用 SSL 或 SPIPE 协议,则应使用完全相同certuser =Cert或machuser =Cert已使用的参数创建服务器时。clicon
指定的进程服务器或 KD 连接服务器将尝试连接到客户端通过反向连接。 客户端必须使用clicon当且仅当服务器使用的clicon。 在大多数情况下,智能客户端启动服务器之前,使用反向连接时。密码
如果创建服务器时使用一个密码,则必须提供密码创建智能客户端。 此值必须匹配的原始密码。 密码是区分大小写。 如果提供了错误的密码,则错误消息将指定"错误 0x80004005"。ipversion=6
(调试工具的 Windows 6.6.07,之前仅)强制将 IP 版本 6 调试器而不是版本 4 使用 TCP 连接到 Internet 时。 在 Windows Vista 和更高版本中,调试器将尝试自动默认为 IP 版本 6,这使得此选项不必要。而不是手动指定的远程连接参数,可以按浏览按钮连接到远程的存根 (stub) 服务器对话框,并使用浏览远程服务器对话框。
在浏览远程服务器对话框文字框中,输入运行的进程服务器或 KD 连接服务器的计算机的名称。 (两个初始反斜杠是可选的:"MyBox"和"\MyBox"均正确。)然后,按刷新按钮。服务器区域列出的所有进程服务器和该计算机运行的 KD 连接服务器。 选择任何列出的服务器,然后按 ENTER 或单击确定。 (您还可以双击一个列出的服务器。)现在将出现所选的进程服务器的正确的连接字符串连接字符串框中连接到远程的存根 (stub) 服务器对话框。如果服务器是受密码保护,包括连接字符串密码 =。必须将为星号 (* *) 与实际密码。指定服务器名和密码后,单击确定来打开连接。中的服务器列表浏览远程服务器对话框还可以包括服务器不再存在,但未正确关闭。 如果您连接到这些不存在服务器之一,将收到一条错误消息。服务器列表不包括调试服务器。
- 内核调试
单击内核调试上文件菜单调试在内核模式下的目标计算机。此命令相当于按下 CTRL + K。 仅当 WinDbg 处于休眠模式时,可以使用此命令。当您单击内核调试,则内核调试对话框将显示与这些选项卡:
-
COM选项卡指示连接将使用的 COM 端口。 在中波特率框中,输入的波特率。 在中端口框中,输入的 COM 端口的名称。
COM 选项卡还可用于连接到虚拟机通过命名管道。 在中端口框中,输入 VMHost 管道 PipeName。 VMHost指定在其运行虚拟机的物理计算机的名称。 如果内核调试器本身相同的计算机上运行虚拟机,使用单个句点 (.) 进行VMHost。
-
1394年选项卡指示连接将使用 1394年。 在中通道框中,输入 1394年频道号。 仅当主计算机和目标计算机运行 Windows XP 或更高版本的 Windows 操作系统支持 1394年调试。
-
USB选项卡指示连接将使用 USB 2.0 或 USB 3.0。 在中目标名称框中,输入你配置目标计算机时创建的目标名称。
-
NET选项卡指示连接将使用以太网。 在中端口号框中,输入目标计算机的配置时指定的端口号。 在中密钥框中,输入您为其生成的密钥 (或创建) 配置目标计算机时。
-
本地选项卡指示 WinDbg 将执行本地内核调试。 支持本地内核调试,仅在 Windows XP 及更高版本。
-
- 符号文件路径
单击符号文件路径上文件菜单显示、 设置,或将追加到符号路径。此命令相当于按下 CTRL + S。
当您单击符号文件路径,则符号搜索路径对话框随即出现。此对话框显示当前符号路径。 如果符号路径框为空,则没有当前符号路径。可以输入新路径,或编辑旧路径。 如果你想要搜索多个目录,请用分号分隔的目录名称。单击确定以保存更改,或单击取消放弃更改。如果选择重新加载复选框,调试器将重新加载所有已加载的符号和图像在单击后确定。 重新加载命令相当于使用 .reload (重新加载模块) 命令。此外可以单击浏览以打开浏览文件夹对话框。
- 源文件路径
单击Source File Path上文件菜单显示、 设置,或将追加到源路径。此命令相当于按下 CTRL + P。当您单击Source File Path,则源搜索路径对话框随即出现。
此对话框显示当前的源路径。 如果源路径框为空,则没有当前源路径。可以输入新路径,或编辑旧路径。 如果你想要搜索多个目录,请用分号分隔的目录名称。如果要执行远程调试本地复选框将提供。 选中此框可编辑调试客户端的本地源路径;清除此字段可编辑调试服务器的源路径。单击确定以保存更改,或单击取消放弃更改。此外可以单击浏览以打开浏览文件夹对话框。 - 映像文件路径
单击映像文件路径上文件菜单显示、 设置,或将追加到可执行映像路径。此命令相当于按下 CTRL + I。当您单击图像文件路径,则可执行文件映像搜索路径对话框随即出现。
此对话框显示当前的可执行映像路径。 如果图像路径框为空,则没有当前可执行映像路径。可以输入新路径,或编辑旧路径。 如果你想要搜索多个目录,请用分号分隔的目录名称。单击确定以保存更改,或单击取消放弃更改。如果选择重新加载复选框,调试器将重新加载所有已加载的图像和符号文件在单击后确定。 此命令相当于使用 .reload (重新加载模块) 命令。此外可以单击浏览以打开浏览文件夹对话框。 - 打开工作区
单击打开工作区上文件菜单打开已保存的工作区。此命令相当于按下 CTRL + W。当您单击打开工作区,则打开工作区对话框随即出现。
此对话框中包含一系列中的所有命名工作区工作区区域。 由于直接打开它们将导致隐式排序的问题未列出默认值或隐式工作区。 如果你想要直接打开隐式工作区,您必须显式将其保存。 输入你想要在中打开的工作区的名称工作区框中或选择中的工作区名称工作区区域。 然后,单击确定以打开所选工作区,或单击取消以返回到其以前的状态的调试器。 - 保存工作区
单击保存工作区上文件菜单保存其当前的工作区名称下的当前工作区。 - 工作区另存为
单击工作区另存为上文件菜单保存新的工作区名称下的当前工作区。当您单击工作区另存为,则工作区另存为对话框随即出现。
此对话框中包含一系列中的所有现有工作区名称工作区区域。 当前工作区的名称所示工作区框。输入你想要使用保存的工作区中的名称工作区框中,选择中的工作区名称工作区区域中或只是保留当前名称,因为它存在。 单击确定以保存工作区中,或单击取消不保存在工作区。 - 清除工作区
单击清除工作区上文件菜单以清除当前工作区中的项。当您单击清除工作区,则清除工作区对话框随即出现。
此对话框中包含的所有包含在当前工作区中的项列表工作区中的项区域。使用清晰并全部清除按钮要从中移除项工作区中的项区域。 如果出现错误,可使用保存并全部保存按钮以返回到此列表项。 单击确定进行这些更改,或单击取消放弃这些更改。 - 删除工作区
单击删除工作区上文件菜单删除一个或多个现有工作区。当您单击删除工作区,则删除工作区对话框随即出现。
在此对话框中,选择你想要删除,然后单击工作区删除。单击关闭以关闭对话框。 - 在文件中打开工作区
单击文件中打开工作区上文件菜单加载以前保存到文件的工作区。当您单击文件中打开工作区,则文件中打开工作区对话框随即出现。
在此对话框中,输入你想要加载,或使用的文件的名称查找列表以导航到该文件并选择它。 (工作区文件应使用.wew 扩展。)单击确定以加载工作区中,或单击取消以关闭对话框。 - 保存工作区到文件
单击保存到文件的工作区上文件菜单保存到文件的当前工作区。当您单击保存到文件的工作区,则保存到文件的工作区对话框随即出现。
在此对话框中,输入你想要为工作区另存文件的名称。 然后,使用将保存在列表以导航到要保存该文件的目录或选择你想要覆盖特定文件。 (默认的文件扩展名是.wew。)单击确定以保存该文件,或单击取消退出。 - 最近使用的文件
指向最近使用的文件上文件菜单可显示在 WinDbg 中最近打开的四个源文件的列表。若要打开这些文件之一,请从菜单单击其名称。
- 退出
单击退出上文件菜单以结束调试会话并退出 WinDbg。此命令相当于按 alt+f4。