QT使用CDB远程调试

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】文件夹。
(步骤如下图所示)

QT使用CDB远程调试_第1张图片
b、添加路径环境变量 patch 方便在命令行操作,把中括号的内容追加到变量值后面【;C:\Users\Administrator\Desktop\Debug;C:\Users\Administrator\Desktop\Debug\x86】
QT使用CDB远程调试_第2张图片

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

QT使用CDB远程调试_第3张图片
b)、在远程主机桌面上的【Debug】文件夹内创建【platforms】文件夹 把 qwindowsd.dll 复制进去
qwindowsd.dll 位于编译器的 plugins\plagforms路径下 ,例如我的如下图所示

QT使用CDB远程调试_第4张图片

e)、把本机主机中的VC库(如下所示) 到远程主机的【Debug】文件夹内
在此推荐一个很好用的搜索工具 Everything
msvcp140d.dll
ucrtbased.dll
vcruntime140d.dll

6、到里这一步远程主机中的程序应该能正常运行 ,不然继续查找缺了什么依赖
可以是用QT的 windeployqt.exe 打包快速找到QT 的依赖问,但是vc库打包不了,
下图就是经过刚才一波操作后的【Debug】文件夹的内容

QT使用CDB远程调试_第5张图片

7、在命令行中启动CDB 调试服务
命令格式 : cdb.exe -server tcp:port=端口号 可执行程序

启动服务器
QT使用CDB远程调试_第6张图片

启动加载描述符有些慢
在这里插入图片描述

等待CDB连接
QT使用CDB远程调试_第7张图片

8、连接接CDB会话

在连接调试器前一定要先在代码上下一个断点 ,否则一开始没断点,后面一下断点QT就会强退

先下断点
先下断点
先下断点

连接CDB调试
QT使用CDB远程调试_第8张图片
在对话窗口上填上远程主机的IP 和服务端口
QT使用CDB远程调试_第9张图片
此弹框不影响调试
QT使用CDB远程调试_第10张图片

准确的进入断点
QT使用CDB远程调试_第11张图片

你可能感兴趣的:(QT编程,c语言,c++)