使用 WinDbg 调试用户模式进程 |
您所在的位置:网站首页 › Windows调试模式 › 使用 WinDbg 调试用户模式进程 |
使用 WinDbg 经典版调试User-Mode进程
项目
04/14/2023
可以使用 WinDbg 附加到正在运行的进程,或者生成并附加到新进程。 附加到正在运行的进程可通过多种方式使用 WinDbg 附加到正在运行的进程。 无论选择哪种方法,都需要进程 ID 或进程名称。 进程 ID 是由操作系统分配的数字。 有关如何确定进程 ID 和进程名称的详细信息,请参阅 查找进程 ID。 WinDbg 菜单当 WinDbg 处于休眠模式时,可以通过从“文件”菜单中选择“附加到进程”或按 F6 来附加到正在运行的进程。 在“ 附加到进程 ”对话框中,选择要调试的进程,然后选择“ 确定”。 命令提示符在命令提示符窗口中,可以在启动 WinDbg 时附加到正在运行的进程。 使用以下命令之一: windbg -pProcessID windbg -pnProcessName其中 ProcessID 是正在运行的进程的进程 ID,而 ProcessName 是正在运行的进程的名称。 有关命令行语法的详细信息,请参阅 WinDbg Command-Line选项。 调试器命令窗口如果 WinDbg 已在调试一个或多个进程,则可以通过使用调试器命令窗口中的 .attach (附加到进程) 命令附加到正在运行的进程。 调试器始终同时启动多个目标进程,除非其某些线程被冻结或挂起。 如果 .attach 命令成功,则调试器将在下次发出执行命令时附加到指定的进程。 如果在一行中多次使用此命令,则调试器必须多次请求执行,因为使用此命令。 以无创方式附加到正在运行的进程如果想要调试正在运行的进程,并且只干扰其执行,则应 以无创方式调试进程。 WinDbg 菜单当 WinDbg 处于休眠模式时,可以通过从“文件”菜单中选择“附加到进程”或按 F6 来无创地调试正在运行的进程。 出现“附加到进程”对话框时,选择“无创检查框。 然后,选择包含所需进程 ID 和名称的行。 (还可以在“进程 ID”框中输入 进程 ID 。) 最后,选择“ 确定”。 命令提示符在命令提示符窗口中,可以在启动 WinDbg 时以非侵入方式附加到正在运行的进程。 使用以下命令之一: windbg -pv -pProcessIDwindbg -pv -pnProcessName 还有其他几个有用的命令行选项。 有关命令行语法的详细信息,请参阅 WinDbg Command-Line选项。 调试器命令窗口如果调试器已处于活动状态,则可以使用调试器命令窗口中的 .attach -v (附加到进程) 命令来无创地调试正在运行的进程。 如果调试器已在以侵入性的方式调试一个或多个进程,则可以使用 .attach 命令。 如果 WinDbg 处于休眠状态,则不能使用此命令。 如果 .attach -v 命令成功,则调试器将在下次调试器发出执行命令时调试指定的进程。 由于在非侵入调试期间不允许执行,因此调试器不能一次非侵入性地调试多个进程。 此限制还意味着使用 .attach -v 命令可能会降低现有侵入性调试会话的用处。 生成新进程WinDbg 可以启动用户模式应用程序,然后调试该应用程序。 应用程序由名称指定。 调试器还可以自动附加到子进程 (原始目标进程启动) 的其他进程。 调试器创建的进程 (也称为生成进程) 与调试器未创建的进程的行为略有不同。 调试器创建的进程不使用标准堆 API,而是使用特殊的调试堆。 可以使用 _NO_DEBUG_HEAP 环境变量 或 -hd 命令行选项强制生成进程使用标准堆而不是调试堆。 此外,由于目标应用程序是调试器的子进程,因此它将继承调试器的权限。 此权限可能使目标应用程序能够执行它无法执行的某些操作。 例如,目标应用程序可能能够影响受保护的进程。 WinDbg 菜单当 WinDbg 处于休眠模式时,可以通过从“文件”菜单中选择“打开可执行文件”或按 Ctrl+E 来生成新进程。 出现“打开可执行文件”对话框时,在“ 文件名 ”框中输入可执行文件的完整路径,或使用 “查找范围 ”列表选择所需的路径和文件名。 如果要将任何命令行参数用于用户模式应用程序,请在“ 参数 ”框中输入它们。 如果要更改默认目录中的起始目录,请在“ 开始 目录”框中输入目录路径。 如果希望 WinDbg 附加到子进程,请选择“调试子进程也检查”框。 做出选择后,选择“ 打开”。 命令提示符在命令提示符窗口中,可以在启动 WinDbg 时生成一个新进程。 请使用以下命令: windbg [-o]ProgramName[Arguments] -o 选项会导致调试器附加到子进程。 还有其他几个有用的命令行选项。 有关命令行语法的详细信息,请参阅 WinDbg Command-Line选项。 调试器命令窗口如果 WinDbg 已在调试一个或多个进程,则可以使用 “调试器命令” 窗口中的 .create (Create Process) 命令创建新进程。 调试器将始终同时启动多个目标进程,除非其某些线程被冻结或挂起。 如果 .create 命令成功,则调试器会在下次发出执行命令时创建指定的进程。 如果在一行中多次使用此命令,则调试器必须多次请求执行,因为使用此命令。 可以使用 .createir (.create 之前的 Set Created Process Directory) 命令来控制应用程序的起始目录。 可以使用 .createdir -I 命令或 -noinh 命令行选项来控制目标应用程序是否继承调试器的句柄。 可以使用 .childdbg ( 调试子进程) 命令激活或停用子进程的调试。 重新附加到进程如果调试器停止响应或冻结,则可以将新的调试器附加到目标进程。 有关如何在这种情况下附加调试器的详细信息,请参阅 重新附加到目标应用程序。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |