CDB在Qt中崩溃

3
我有一个使用MSVC 2013和CDB调试器在Windows 7上的Qt 5.4项目。当我尝试调试程序时,调试日志显示调试器崩溃。我可以在不进行调试的情况下运行程序。
相关的错误信息是:

无法执行'"C:...\Qt\build-GENOVA->Clone_of_Desktop_Qt_5_4_0_MSVC2013_64bit-Debug\debug\GENOVA.exe"',Win32错误>0n50 "请求不受支持。" 调试器初始化失败,Win32错误0n50 "请求不受支持。"

这里发生了什么?
1个回答

5
请前往Qtcreator->option->build&run->debuggers查看您的cdb版本。如果您使用的是32位cdb来调试64位程序,可能会出现此问题。如果是32位,请尝试卸载并安装64位版本。如果您的cdb是64位,请使用与cdb.exe相同文件夹中的windbg.exe打开可执行文件以查看更多错误详情。

CDB是64位的。 Windbg会抛出一个错误,说Qt5Widgets.dll没有安装,但这是不正确的。我以前从未使用过windbg.exe。我该如何解决这个问题? - BenK
@BenK 你在执行之前是否将qt路径添加到了你的PATH环境变量中? - Qmick Zh
不是的,但是集成开发环境应该会处理路径。 - BenK
1
这可能是问题的根源: 在调试器日志中,它说我正在使用预期的64位ABI: ABI: x86-windows-msvc2013-pe-64bit 但后来出现了这个: C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\cdb.exe using C:\Qt\Tools\QtCreator\lib\qtcreatorcdbext32\qtcreatorcdbext.dll因此,看起来在Qt Creator中使用了32位CDB版本和相应的32位.dll,但ABI是64位。我将尝试修复这个问题。 - BenK
2
我之前说过CDB是64位的,但实际上并不是。我本以为它是,没有仔细检查。这里发生的事情是Qt使用了自动检测到的32位版本的CDB。很糟糕。所以我不得不去工具箱设置中告诉它使用另一个版本。现在它可以正常工作,并且Qt Creator正确地使用了其64位版本的qtcreatorcdbext.dll。 - BenK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接