debug 模式崩溃,CDB 进程终止,但 release 模式没问题
Crash in debug mode along with CDB process termination, but release mode is fine
我的应用程序在 Release 模式下构建并且 运行 正常。但是,在 Debug 模式下,我的应用程序崩溃了。当尝试使用调试器查明崩溃原因时,收到这样的错误:
Qt Creator unexpected CDB exit
The CDB process terminated
问题的可能原因是什么?
更新
我在 Debug 模式下构建并部署了应用程序,然后尝试通过如下命令 运行 可执行文件:
C:\Users\m3\Documents\deployment_folder>.\application.exe
我收到了这条消息:
The code execution cannot be proceed because tbb_debug.dll
was not found. Reinstalling the program may fix this problem.
由于某些原因,在Release模式下可以找到tbb.dll
,但在debug下找不到tbb_debug.dll
] 模式。尽管所有 TBB DLL 都在同一个目录中。不知道为什么...
更新
我正在使用 QMake 将 TBB 添加到我的项目中,如下所示:
INCLUDEPATH += deps/tbb-2020.3-win/tbb/include
# Looks like absolute path works for LIBS, but NOT relative path
win32: CONFIG (release, debug|release): {
LIBS += -LC:\Users\m3\repos\myapp\deps\tbb-2020.3-win\tbb\lib\intel64\vc14 \
-ltbb \
-ltbb_preview \
-ltbbbind \
-ltbbmalloc \
-ltbbmalloc_proxy \
-ltbbproxy
} else: win32: CONFIG (debug, debug|release): {
LIBS += -LC:\Users\m3\repos\myapp\deps\tbb-2020.3-win\tbb\lib\intel64\vc14 \
-ltbb_debug \
-ltbb_preview_debug \
-ltbbbind_debug \
-ltbbmalloc_debug \
-ltbbmalloc_proxy_debug \
-ltbbproxy_debug
} else: unix: { # Linux and mac
# TODO: add correct path to LIBS +=
}
问题已通过手动复制 TBB DLL 到应用程序可执行文件旁边得到解决。
从 ... /tbb-2020.3-win/tbb/bin/intel64/vc14/*.dll
复制到可执行位置。
发布模式为何有效
我认为某些第 3 方应用程序已经将 tbb.dll
添加到可能的 PATH 环境变量中。但是 tbb_debug.dll
是 而不是 被任何应用程序添加到 PATH 中。只是猜测...
我的应用程序在 Release 模式下构建并且 运行 正常。但是,在 Debug 模式下,我的应用程序崩溃了。当尝试使用调试器查明崩溃原因时,收到这样的错误:
Qt Creator unexpected CDB exit The CDB process terminated
问题的可能原因是什么?
更新
我在 Debug 模式下构建并部署了应用程序,然后尝试通过如下命令 运行 可执行文件:
C:\Users\m3\Documents\deployment_folder>.\application.exe
我收到了这条消息:
The code execution cannot be proceed because
tbb_debug.dll
was not found. Reinstalling the program may fix this problem.
由于某些原因,在Release模式下可以找到tbb.dll
,但在debug下找不到tbb_debug.dll
] 模式。尽管所有 TBB DLL 都在同一个目录中。不知道为什么...
更新
我正在使用 QMake 将 TBB 添加到我的项目中,如下所示:
INCLUDEPATH += deps/tbb-2020.3-win/tbb/include
# Looks like absolute path works for LIBS, but NOT relative path
win32: CONFIG (release, debug|release): {
LIBS += -LC:\Users\m3\repos\myapp\deps\tbb-2020.3-win\tbb\lib\intel64\vc14 \
-ltbb \
-ltbb_preview \
-ltbbbind \
-ltbbmalloc \
-ltbbmalloc_proxy \
-ltbbproxy
} else: win32: CONFIG (debug, debug|release): {
LIBS += -LC:\Users\m3\repos\myapp\deps\tbb-2020.3-win\tbb\lib\intel64\vc14 \
-ltbb_debug \
-ltbb_preview_debug \
-ltbbbind_debug \
-ltbbmalloc_debug \
-ltbbmalloc_proxy_debug \
-ltbbproxy_debug
} else: unix: { # Linux and mac
# TODO: add correct path to LIBS +=
}
问题已通过手动复制 TBB DLL 到应用程序可执行文件旁边得到解决。
从 ... /tbb-2020.3-win/tbb/bin/intel64/vc14/*.dll
复制到可执行位置。
发布模式为何有效
我认为某些第 3 方应用程序已经将 tbb.dll
添加到可能的 PATH 环境变量中。但是 tbb_debug.dll
是 而不是 被任何应用程序添加到 PATH 中。只是猜测...