大家好!
以下将是我解决的问题,但对于某人来说可能有用。
我有一个项目,我从 Visual Studio 2015 开始,因为我想要 GUI 我正在从Visual Studio更改为QTCreator。(是的,我知道,为什么尚未在QT开始)
所以我已经和QTCreator一起工作了几次没什么大不了的。我没有任何问题地使用它的调试器。
我将所有文件移动到一个单独的文件夹中。我开始使用普通的C ++应用程序。(当我无法包含时,我不得不包括QT框架,我将这些行添加到.pro文件中: QT + = core gui QT + = widgets )
调试器无法正常工作。
调试器只是跳过放置的断点。我不知道为什么,但是当我编辑断点的类型时:打破内存地址 然后调试器工作,并在放置的断点处停止,我看到汇编代码。
并希望它能够奏效,但事实并非如此。
我也在论坛上阅读过指南。他们都没有解决问题。
我的尝试:
我想使用 sqlite3 并使用QT构建GUI,我开始考虑问题可能在于包含过程。
我的.pro文件看起来像
...
HEADERS += \
...
resources/sqlite3QT/sqlite3.h \
INCLUDEPATH += resources/
DISTFILES += \
resources/sqlite3QT/sqlite3.lib
#
LIBS += -L"$$_PRO_FILE_PWD_/resources/sqlite3QT" -lsqlite3
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/resources/sqlite3QT/ -lsqlite3
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/resources/sqlite3QT/ -lsqlite3

评论说明 # LIBS + = -L" $$ _ PRO_FILE_PWD_ / resources / sqlite3QT" -lsqlite3 另一种尝试是以不同的方式包含.lib。
因此,如果我注释掉所有sqlite3对象以及使用任何sqlite3的函数,调试器将在放置的断点处工作并停止。
好的,所有标题,来源和一个库都被正确包含在内。 还需要包括哪些内容?
.dll文件可能,所以因为我使用Windows而且我知道操作系统会搜索.dll,并且.exe位于那里操作系统首先开始查找,我将.dll放入/ debug /文件夹。因为当我在调试模式下使用QT编译时,这就是放置所有内容的地方。
它解决了这个问题所以我不再得到"意想不到的CDB退出"标签," CDB流程终止。"错误。
小"实验"我试图将64位版本放在32位版本的sqlite3.dll上,在我的情况下发生同样的错误(使用32位cdb.exe和32位工具链)