qt关联到远程调试服务器,配置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"是符号路径,根据自己的情况修改

684ad612d80cbeaad3d61dbb9a6750bc.png

接着回到本机,把QtCreator目录下的qtcreatorcdbext.dll复制到远程机器上

x86:"\lib\qtcreatorcdbext32\qtcreatorcdbext.dll"

x64:"\lib\qtcreatorcdbext64\qtcreatorcdbext.dll"

根据需要复制一个就行了,我这里复制的x86的,拷贝到"D:\DebugServer"下面

9256a956834c614b3f3336baba248302.png

然后添加系统环境变量_NT_DEBUGGER_EXTENSION_PATH,并指向这个目录

0ce102b6d3243963541985fc0cf8bcaf.png

二、部署Qt程序运行环境

Qt程序离不开它的那些个DLL文件,所以我们根据自身程序的依赖要把相关DLL拷进到调试机器上

一个Windows下的窗口Qt程序,至少需要4个DLL:Qt5Widgetsd.dll、Qt5Guid、Qt5COred、qwindowsd.dll

注意我这里拷贝的是调试版本,而且我的Qt是自行编译的,需要依赖的DLL没有官方安装版那么多

在Qt目录下的lib文件夹里找到相关DLL复制到远程机器

c3738f9456648e4ed0b132150a153e92.png

最后文件结构如下:

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目录

81aa8f630676d0b03676f081c49198ff.png

并将"D:\DebugServer\Qt"添加到PATH中,以便我们的程序在任何位置都可以运行起来

92dd774b9444f2cd24c571a6e624f8b6.png

因为我这边是用的msvc2013编译器,把依赖的msvcp120d.dll和msvcr120d.dll也一起拷贝到Qt文件夹中了

这个其实拷贝到System32目录下也可以

三、开始远程调试

在本机新建一个窗口工程并在main.cpp中加一句输出当前系统版本号的语句

#include "mainwindow.h"

#include 

#include 

#include 

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

MainWindow w;

w.show();

qDebug() <

return a.exec();

}

生成Debug版,并将exe文件复制到远程机器的C:\下,完整路径是C:\Demo.exe

从CMD中启动cdb.exe(在WinDbg根目录下)并附上相关参数:cdb.exe -server tcp:port=123 c:\demo.exe

4db94096d4d81eddc2b2c569c7fea00d.png

-server是启动调试服务,port设置了调试端口

第一次启动的时候可能要等一会,因为需要下载调试符号文件

当看到等待用户输入的时候表示已经可以开始调试了

4fe65e25ec42b59a3b2434efe126afe8.png

回到QtCreator中选择"挂接到一个CDB会话..."

44545e355e959936e2e3e7ac1ba04726.png

10e20bccc15b28c738a6fbcb53d8070e.png

然后设置远程机器的IP和端口,点击确定

此时远程机器上的调试服务器已经开始工作了,第一次的话因为需要下载调试符号所以要等一会

最后可以看到调试窗口输出了"48",对应Qt中的枚举值QSysInfo::WV_XP

f663f97330b5a69eee30ce1a1a3cdf59.png

http://blog.csdn.net/aqtata/article/details/24926633

配置QtCreator&plus;CDB远程调试环境(要设置&lowbar;NT&lowbar;SYMBOL&lowbar;PATH和QT&lowbar;PLUGIN&lowbar;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 ...

Python测试进阶——(2)配置PyCharm远程调试环境

新建一个Python项目 配置Deployment,用于本地文件和远程文件的同步,在pycharm的菜单栏依次找到:Tools > Deployment > Configuration 点 ...

配置移动前端开发调试环境(nodejs&plus;npm&plus;weiner的安装和配置使用&rpar;

这段时间发现做移动端的开发调试是一大难题,网上逛了逛发现有一些工具可用,如chrome的远程调试,实际测试过程中我始终调试不成功,听说被墙后是不行的,所以最终找了如下的方法. 因为基于nodeJS环境 ...

phpstorm中配置真正的远程调试&lpar;xdebug&rpar;

这里说的是真正的远程调试,不是本地,本地不需要安装任何php程序!!! 这里略去xdebug的安装,安装很简单可以下载源码包,动态编译进去! 环境: Dev 服务器(IP:192.168.2.100) ...

随机推荐

mysql 乱码问题(程序界面显示正常,mysql command line显示乱码)

今天用java写一个程序,用的是mysql数据库.界面出现乱码,然后写了一个过滤器结果了乱码问题. 但是,当我在mysql command line 中查询数据的时候,在界面上显示正常的数据,在mys ...

如何用 CSS 做到完全垂直居中

本文将教你一个很有用的技巧——如何使用 CSS 做到完全的垂直居中.我们都知道 margin:0 auto; 的样式能让元素水平居中,而 margin: auto; 却不能做到垂直居中……直到现在.但 ...

html &lt&semi;input&gt&semi;标签类型属性type&lpar;file、text、radio、hidden等&rpar;详细介绍

html 标签类型属性type(file.text.radio.hidden等)详细介绍 转载请注明:文章转载自:[169IT-最新最全的IT资讯] html

mysql的limit性能,数据库索引问题,dblog问题

mysql的limit性能,数据库索引问题,dblog问题,redis学习 继续学习. dblog实际上是把日志记录在另一个数据库里面. 问题1: 一张表定义了5个索引,但是sql语句中用到了3个有索 ...

Mybatis 中一对多,多对一的配置

现在有很多电商平台,就拿这个来说吧.顾客跟订单的关系,一个顾客可以有多张订单,但是一个订单只能对应一个顾客. 一对多的顾客 <?xml version="1.0" encod ...

Linux上rpm方式安装JDK1&period;7

说明: 1.Linux版本 CentOS6.5_x86 2.Java版本 JDK1.7 32位的rpm包,所以是以rpm方式安装的java 3.可以使用yum install java从yum源中安装 ...

&num;工具 Intellij IDEA中自定义的Maven Archetype管理

背景,手贱在输入自定义的 archetype时后面多输入了一个空格 解决:自定义的Archetype 会保存在Windows下面的文件中 C:\Users\\.IntelliJ ...

log4net在C&num;项目里的配置

做个记录,这个可用.每次新项目配置从网上找来的都要配半天 这里不说这是什么,从哪来,为什么这样配置 App.config或其他.config文件里加入如下配置 < ...

随机森林学习-sklearn

随机森林的Python实现 (RandomForestClassifier) # -*- coding: utf- -*- """ RandomForestClassif ...

cas client

(The client and server are the same thekeystore) cas client version: 3.5.1(cas-client-core-3.5.1) gi ...

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值