配置QtCreator+CDB远程调试环境(用到了符号表) good
相关环境信息:开发机Win7 x64、远程机器WinXP、调试器是CDB、Qt版本5.2.1
一、部署远程机器环境
我这里用的是虚拟机(Windows XP),根据你要调试的程序选择安装不同架构的WinDbg,因为安装文件不大,所以我一般都会装上
附上下载地址:
dbg_i386_6.12.2.633:http://download.csdn.net/detail/aqtata/7210807
dbg_amd64_6.12.2.633:http://download.csdn.net/detail/aqtata/7210817
安装过程很简单,下一步就行了。安装好后第一件事情就是设置调试符号路径,添加系统环境变量_NT_SYMBOL_PATH
值填写为SRV*D:\Symbols*http://msdl.microsoft.com/download/symbols
其中"D:\Symbols"是符号路径,根据自己的情况修改
接着回到本机,把QtCreator目录下的qtcreatorcdbext.dll复制到远程机器上
x86:"\lib\qtcreatorcdbext32\qtcreatorcdbext.dll"
x64:"\lib\qtcreatorcdbext64\qtcreatorcdbext.dll"
根据需要复制一个就行了,我这里复制的x86的,拷贝到"D:\DebugServer"下面
然后添加系统环境变量_NT_DEBUGGER_EXTENSION_PATH,并指向这个目录
二、部署Qt程序运行环境
Qt程序离不开它的那些个DLL文件,所以我们根据自身程序的依赖要把相关DLL拷进到调试机器上
一个Windows下的窗口Qt程序,至少需要4个DLL:Qt5Widgetsd.dll、Qt5Guid、Qt5COred、qwindowsd.dll
注意我这里拷贝的是调试版本,而且我的Qt是自行编译的,需要依赖的DLL没有官方安装版那么多
在Qt目录下的lib文件夹里找到相关DLL复制到远程机器
最后文件结构如下:
D:\DebugServer\qtcreatorcdbext.dll
D:\Qt\Qt5Cored.dll
D:\Qt\Qt5Guid.dll
D:\Qt\Qt5Guid.dll
D:\DebugServer\Qt\plugins\platforms\qwindowsd.dll
注意,因为Windows下的程序依赖qwindowsd.dll,而它是以插件的形式存在的,所以需要设置特别的路径
继续添加环境变量QT_PLUGIN_PATH,将其指向plugins目录
并将"D:\DebugServer\Qt"添加到PATH中,以便我们的程序在任何位置都可以运行起来
因为我这边是用的msvc2013编译器,把依赖的msvcp120d.dll和msvcr120d.dll也一起拷贝到Qt文件夹中了
这个其实拷贝到System32目录下也可以
三、开始远程调试
在本机新建一个窗口工程并在main.cpp中加一句输出当前系统版本号的语句
- #include "mainwindow.h"
- #include <QApplication>
- #include <QSysInfo>
- #include <QDebug>
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- MainWindow w;
- w.show();
- qDebug() << QSysInfo::windowsVersion();
- return a.exec();
- }
生成Debug版,并将exe文件复制到远程机器的C:\下,完整路径是C:\Demo.exe
从CMD中启动cdb.exe(在WinDbg根目录下)并附上相关参数:cdb.exe -server tcp:port=123 c:\demo.exe
-server是启动调试服务,port设置了调试端口
第一次启动的时候可能要等一会,因为需要下载调试符号文件
当看到等待用户输入的时候表示已经可以开始调试了
回到QtCreator中选择"挂接到一个CDB会话..."
然后设置远程机器的IP和端口,点击确定
此时远程机器上的调试服务器已经开始工作了,第一次的话因为需要下载调试符号所以要等一会
最后可以看到调试窗口输出了"48",对应Qt中的枚举值QSysInfo::WV_XP
http://blog.csdn.net/aqtata/article/details/24926633
配置QtCreator+CDB远程调试环境(用到了符号表) good的更多相关文章
- 配置QtCreator+CDB远程调试环境(要设置_NT_SYMBOL_PATH和QT_PLUGIN_PATH和Path)
相关环境信息:开发机Win7 x64.远程机器WinXP.调试器是CDB.Qt版本5.2.1 一.部署远程机器环境 我这里用的是虚拟机(Windows XP),根据你要调试的程序选择安装不同架构的Wi ...
- VS2015配置Linux开发远程调试
# VS2015配置Linux开发远程调试 ### 简介-----------------------------vs2015支持跨平台开发 ### 软件环境--------------------- ...
- Eclipse IDE配置PHP开发、调试环境
前言 使用java语言开发的朋友想必对Eclipse开发工具已经不陌生了,那么Eclipse作为java主流的开发工具,是否能够开发PHP项目呢?答案如你所想,肯定是可以的!以下就是该IDE下如何配置 ...
- PhpStorm Xdebug远程调试环境搭建原理分析及问题排查
2017年05月26日 经验心得 目录 一. 环境介绍 二. 远程环境配置 2.2 Xdebug安装 2.3 配置 三. 本地phpstorm配置 3.1 下载远程代码 3.2 添加php解释器 ...
- 在Mac系统上配置Android真机调试环境
在Mac系统上配置Android真机调试环境 mac上配置安卓环境还说挺方便的,真机调试也比win上要好一些.win上被各种软件强行安装了xxx助手. 在mac上就了一个干净的感觉. 下载Androi ...
- 配置tomcat的远程调试
参考文档: http://jingyan.baidu.com/article/0320e2c1f4ef6b1b87507b06.html http://flyer2010.iteye.com/blog ...
- vs Code配置C++运行和调试环境以及相关问题
vs Code配置C++运行和调试环境以及相关问题 第一步:下载c++插件 第二步:安装编译.调试环境 如果没有Dev-C++下载MinGW 下载地址:https://sourceforge.net/ ...
- VSCODE 配置远程调试环境
以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/p/16691460.html 我的需求是,在Windows桌面 ...
- Python测试进阶——(2)配置PyCharm远程调试环境
新建一个Python项目 配置Deployment,用于本地文件和远程文件的同步,在pycharm的菜单栏依次找到:Tools > Deployment > Configuration 点 ...
随机推荐
- array=nil 和 Array=[[NSMutableArray alloc]init]; 的区别
情况1: array=nil; [_PayArray addObject:BillDetail]; 此时array还是nil:因为array没有分配地址应该. 情况2: Array=[[NSMutab ...
- 【 D3.js 高级系列 — 2.0 】 机械图 + 人物关系图
机械图(力路线图)结合老百姓的关系图中的生活,这是更有趣. 本文将以此为证据,所列的如何图插入外部的图像和文字的力学. 在[第 9.2 章]中制作了一个最简单的力学图.其后有非常多朋友有疑问,基本的问 ...
- Max-Min Fairness带宽分配算法
近期再写一个网络仿真器,里面參考了Max-MinFairness算法,这是一种比較理想.公平的带宽分配算法.其思路主要例如以下:首先是算法的准备,考察某一时刻的网络中全部的flow,因为每条flow都 ...
- hive 日志配置/表头配置
1.日志配置,拷贝hive/conf下的hive-log4j2.properties.template为hive-log4j2.properties,修改日志目录,接下来在创建hive/logs,目录 ...
- DirectX11学习笔记
一.假定每种颜色的原始点是不同,表面的这样的原始颜色将被指定为每种颜色用线性内插值传授,这个被称为高洛德着色(Gouraud Shading).也称为平滑阴影: 二.三维图元:Direct3D中.使用 ...
- SpringCloud学习笔记-zuul网关
公司目前使用的是dubbo方式实现微服务,想试水改造接口层服务为Spring Cloud, 以下是网络拓补图. 第一层负载均衡可以用nginx或者zuul(即有2层zuul), 本图画的是nginx. ...
- VS2017 安装过程
2017 安装过程 工欲善其事必先利其器 Visual Studio 2017 正式版官方下载地址:https://www.visualstudio.com/downloads/ 安装vs2017的时 ...
- 使用QuickContactBadge关联联系人
QuickContactBadge继承了ImageView,因此它的本质也是图片,也可以通过android:src属性指定它显示的图片.QuickContackBadge额外功能是:该图片可以关联到手 ...
- yii2.0复选框默认选中
<?php $model->node = array('0','2') ;?> <? echo $form->field($model,'node')->che ...
- LockWindowUpdate的函数的用法
Application.ProcessMessages;LockWindowUpdate(Self.Handle); //锁住当前窗口 LockWindowUpdate(0)//解除锁定窗口 Lock ...