1

我正在使用 QT 框架在 C++ 中开发应用程序。过了一会儿,我需要使用调试器,故事从这里开始。

我尝试在 QT Creator 中设置 CDB,但我不知道我在执行此操作时是否更改了代码中的任何内容(可能没有),并且我的应用程序在运行后立即开始崩溃。

我把 "qDebug() << "TEST";" 在 main 函数的第一行,它崩溃而没有任何输出。

我只是放了一个“return 1;” 进入主体,删除了其他所有内容,仍然崩溃。

顺便说一句,Creator 中的调试器没有帮助。它也崩溃了。

我将我的代码移到 Visual Studio 2010 中,调试器卡在 qvector.h 文件的“detach()”函数中。之后,它会抛出一条消息,告诉您:

“Windows 已在 app.exe 中触发断点。这可能是由于堆损坏,这表明 app.exe 或其已加载的任何 DLL 中存在错误-。这也可能是由于用户在应用程序时按 F12 .exe 有焦点。输出窗口可能有更多诊断信息。[BREAK] [CONTINUE] [IGNORE]"

但有一个有趣的点。如果我在 VS2010 中单击“不调试就开始”,它运行没有问题。

寻找出路。提前致谢..

4

1 回答 1

0

这不是与 QT 相关的问题,而是在 Visual Studio 中调试时的“功能”,其中 F12 按钮被映射以触发断点。

F12 键一直保留供调试器使用,因此不应将其注册为热键。即使您不调试应用程序,F12 也会保留,以防内核模式调试器或即时调试器驻留。 来源 MSDN

不幸的是,我还没有找到禁用 F12 快捷方式的方法。

于 2017-11-18T22:05:04.507 回答