我正在尝试在64位Windows 7上调试一个32位程序。
因此,我使用gflag为该应用程序设置调试器。我填写了应用程序的路径和调试器的路径。但是当我启动应用程序时,WinDBG没有运行。
同样的配置也适用于32位Windows 7。
那么,在64位环境下调试32位应用程序是不可能的吗?
发布于 2013-09-23 16:02:09
对我来说,这总是有效的,即使我使用了“错误的”架构。
但是,Windbg必须位于PATH中,或者在将调试器指定为gflag时必须包含path。

发布于 2013-09-22 05:54:30
更新
这是一个古老的问题。用于将设置存储在以下位置之一的较早版本的gflag:
HTML\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
或
HTML\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
根据您为gflags.exe选择的体系结构,它将影响64位或32位进程。
显然在某种程度上(感谢@Thomas Weller指出),微软改变了gflags.exe的行为,现在(2016年11月)当前版本的gflags同时写入32位和64位注册表位置,而与架构无关。
这有点问题,因为我曾经使用将32位调试器附加到32位进程,将64位调试器附加到具有相同进程名称的64位进程。现在我不能使用gflag来做这件事。但是,解决方法是直接修改Image File Execution Options下的注册表项。
老答案
gflags.exe的处理器架构实际上很重要。如果使用64位版本的Windows调试工具并从那里启动gflags.exe,将会影响64位应用程序的行为。同样,如果您使用32位版本的Windows调试工具并启动gflags.exe,它将影响32位应用程序。
32位和64位版本可以并排安装。密切关注正在调试的应用程序的位数,并使用与调试器/工具相同的体系结构。
https://stackoverflow.com/questions/18934004
复制相似问题