2011-05-10 220 views
1

当使用WinDbg调试可执行文件时,有没有一种方法可以在调试开始为调试会话设置环境变量之前指定要运行的批处理脚本?WinDbg环境变量

我在试图模拟一个自动化的测试环境,这个可执行文件将运行。这些变量包含诸如当前内部版本号,结果目录的位置以及第三方工具目录所在位置等信息。我可以将它们硬编码到应用程序中进行自己的测试,但这很难看:)。

这当然是在Windows操作系统上,我宁可不使用不同的调试器。

如果WinDbg不直接支持此功能,那么实现此功能的最佳方法是什么?

回答

4

WinDbg的-o选项会导致它自动附加到所有子进程,这对调试从另一个程序启动的程序非常有用。如果运行windbg -o cmd.exe /c myscript.bat,WinDbg将调试cmd.exe(您可以跳过)以及由该实例cmd.exe产生的每个子进程。如果批处理文件在运行要调试的那个命令之前运行了许多其他命令,但这可能很烦人,但sx*命令(例如sxn ibp; sxe ld:mymodule)应该能够减少烦恼。

另一种方法是使用Image File Execution Options注册表项在启动EXE时附加WinDbg(或cdb/ntsd)。

+0

太棒了!它工作的很好,跳过cmd.exe有点麻烦,但值得。非常感谢。 – MichaelHouse 2011-05-11 04:48:47