Debugging 环境变量

Debugging 环境变量,debugging,environment-variables,windbg,Debugging,Environment Variables,Windbg,使用WinDbg调试可执行文件时,是否有方法指定在调试开始前运行的批处理脚本,以便为调试会话设置环境变量 我试图模拟一个自动测试环境,在这个环境中运行这个可执行文件。变量包含诸如当前版本号、结果目录和第三方工具目录的位置等信息。我可以将这些硬编码到应用程序中进行自己的测试,但这很难看:) 这当然是在Windows操作系统上,我不希望使用其他调试器 如果WinDbg不直接支持此功能,那么实现此功能的最佳方法是什么?WinDbg的-o选项使其自动连接到所有子进程,这对于调试从另一个程序启动的程序非常

使用WinDbg调试可执行文件时,是否有方法指定在调试开始前运行的批处理脚本,以便为调试会话设置环境变量

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

这当然是在Windows操作系统上,我不希望使用其他调试器


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

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


另一种方法是使用
映像文件执行选项
注册表项在每次启动EXE时附加WinDbg(或cdb/ntsd)。

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


另一种方法是使用
图像文件执行选项
注册表项在每次启动EXE时附加WinDbg(或cdb/ntsd)。

太好了!它工作得很好,跳过cmd.exe有点麻烦,但值得。谢谢,太好了!它工作得很好,跳过cmd.exe有点麻烦,但值得。多谢。