Debugging Tools for Windows |
调试器可以启动用户模式程序并调试它。如同在命令提示符或者Microsoft Windows系统的运行对话框启动一样,使用名字来指定程序。
调试器也可以自动附加到子进程(child processes) (目标进程创建的另一个进程)。
本主题的下一小节描述了开始新进程的几种方法。
在CDB命令提示符下启动用户模式程序,需要按如下形式在CDB命令的最后插入对应用程序的命令行。
-o 选项使得调试器附加到子进程。还有一些其它有用的命令行选项。关于命令行语法的更多信息,查看CDB命令行选项。
在WinDbg命令提示符下启动用户模式程序,需要按如下形式在WinDbg命令的最后插入对应用程序的命令行。
-o 选项使得调试器附加到子进程。还有一些其它有用的命令行选项。关于命令行语法的更多信息,查看WinDbg命令行选项。
当WinDbg在静止模式时,可以在File菜单中点击Open Executable或者按下CTRL+E来启动新进程。
当Open Executable 对话框出现时,在File name文本框里输入可执行文件的完整路径或者使用Look in列表框来选择路径和文件。 (如果在运行对话框或命令提示符窗口中创建进程,Windows会在命令路径下搜索可执行文件,但是Open Executable 对话框需要精确的路径。)
如果想为用户模式程序使用任何命令行参数,可以在Arguments 文本框中输入。如果要修改掉默认的运行目录,在Start directory 中输入。如果希望WinDbg附加到子进程,选上Debug child processes also 选择框。
选择完成后,点击Open。
如果调试器已经激活,可以通过调试器命令窗口中输入.create (Create Process)命令来创建新进程。
如果CDB在静止状态或者已经在调试一个或多个进程,可以使用.create 命令。不能在WinDbg静止时使用。
调试器总是同时启动多个目标进程,除非它们的一些线程被冻结或暂停。
如果.create命令成功,调试器会在下一次执行命令的时候创建指定进程。如果在一行中使用了这个命令多次,则每一条.create命令都需要执行一次其他命令。
可以在.create之前先使用.createdir (Set Created Process Directory) 命令来设置程序的启动目录。可以用.createdir –I命令或-noinh 命令行选项来控制目标程序是否继承调试器的句柄。
在Windows XP和之后版本的Windows系统中,可以使用.childdbg (Debug Child Processes)命令来启用或禁用对子进程的调试。
关于如何开始调试会话的更多信息,查看调试器配置, 符号, 调试器操作(常规)和调试器操作(用户模式)。
在Microsoft Windows XP和之后的Windows系统中,如果调试器停止相应或者冻结了,可以将一个新的调试器附加到目标进程上。关于如何在这种情况下附加调试器的更多信息,查看重新附加目标进程。