1、开发环境:
本地端:
1)win 10
2)IDE Qt Creator 4.8.0
3) CDB 调试环境 ,因为我有装VS 2017 的环境以及前期安装过 Debugging Tools for Windows 所以这就不讲了,环境没搭好的朋友自行百度一下
远程主机配置:
win 7 32bit 注:如果要调试64位要把X86改X64
1)、创建文件夹
在桌面创建了【Debug】文件夹方便调试和设置
C:\Users\Administrator\Desktop\Debug
2)、环境变量设置
a、将_NT_DEBUGGER_EXTENSION_PATH环境变量设置为指向桌面的【Debug】文件夹。
(步骤如下图所示)
b、添加路径环境变量 patch 方便在命令行操作,把中括号的内容追加到变量值后面【;C:\Users\Administrator\Desktop\Debug;C:\Users\Administrator\Desktop\Debug\x86】
3)、文件复制
a、把qtcreatorcdbext32文件夹中的所有内容(下图所示)复制到远程计算机上的【Debug】(32或64位版本,具体取决于所用Windows调试工具的版本):
\lib\qtcreatorcdbext32\qtcreatorcdbext.dll (32位)
\lib\qtcreatorcdbext64\qtcreatorcdbext.dll (64位)
b、把 cdb调试器 所在的整个【x86】文件夹复制到远程计算机上的【Debug】文件夹内的
Windows 10 SDK 一般默认的安装路径如下:
C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\cdb.exe
4、复制程序和调试符文件
把程序Debug路径下的 exe后缀的 文件以及2个pdb后缀的调试符文件(如下图所示)复制到远程主机桌面下的【Debug】文件夹内
一定要复制调试符文件
一定要复制调试符文件
一定要复制调试符文件
否则后面进入不了断点
5、复制依赖文件
a)、把一下依赖文件复制到远程主机桌面的【Debug】文件夹内(看程序只要能运行起来就可以)
Qt5Cored.dll
Qt5Widgetsd.dll
Qt5Guid.dll
以上三个文件一般在QT安装目录下所在编译器的【bin】文件夹内
例如我的
E:\5.12.0\msvc2017\bin
b)、在远程主机桌面上的【Debug】文件夹内创建【platforms】文件夹 把 qwindowsd.dll 复制进去
qwindowsd.dll 位于编译器的 plugins\plagforms路径下 ,例如我的如下图所示
e)、把本机主机中的VC库(如下所示) 到远程主机的【Debug】文件夹内
在此推荐一个很好用的搜索工具 Everything
msvcp140d.dll
ucrtbased.dll
vcruntime140d.dll
6、到里这一步远程主机中的程序应该能正常运行 ,不然继续查找缺了什么依赖
可以是用QT的 windeployqt.exe 打包快速找到QT 的依赖问,但是vc库打包不了,
下图就是经过刚才一波操作后的【Debug】文件夹的内容
7、在命令行中启动CDB 调试服务
命令格式 : cdb.exe -server tcp:port=端口号 可执行程序
启动服务器
启动加载描述符有些慢
等待CDB连接
8、连接接CDB会话
在连接调试器前一定要先在代码上下一个断点 ,否则一开始没断点,后面一下断点QT就会强退
先下断点
先下断点
先下断点
连接CDB调试
在对话窗口上填上远程主机的IP 和服务端口
此弹框不影响调试
准确的进入断点