c++ builder xe2 (Embarcadero rad studio) 远程调试 同样适用于 delphi 远程调试 教程

简介:

每次要远程调试的时候都要看半天的xe2英文帮助文档,今天正好有点时间,把它写下来。

一、概述:

首先说明一下,c++ builder 远程调试有两种方式的,一种是被称为是老式的调试方法,这种方法是在远程机器上安装Debugger 也就是其实也就是运行PAServer的rmtdebug163.exe来运行调试的,但是这种方法貌似只能以启动进程的方式调试程序,而不能附加已经存在的进程。而今天我讲的重点是新的远程调试,同时它的功能不仅仅是用在调试,还可以用在跨平台开发当中。原方名字为:The new remote and cross-platform debugging solution,它是用一个Platform Assistant 和一个 remote profile来达到到远程调试的目的。

本文是拿c++ builder xe2为例写的,但绝大多数内容也适用于delphi xe2 并且可以很容易的推广到 xe3 xe4 等版本。

二、具备条件

由于embarcadero rad studio  远程调试都是建立在socket通信基础上的。

所以调试机与被调试机必须是网络连通的,被调试机上有开发机上生成的调试信息符号文件  *.tds (delphi 是 *.rsm)。

可执行文件(*.exe或*dll)你编译生成之后必须复制到被调试机器上

三、部署

1.首先在远程机器(被调试程序所在的机器)上安装PAServer。我的安装文件在 D:\Program Files (x86)\Embarcadero\RAD Studio\9.0\PAServer\setup_paserver.exe

2.在被调试机器上安装好之后运行paserver.exe出现命令提示符界面调试让你输入密码,如果不设置密码直接按回车即可。

3.在调试机器上的c++ builder xe2 上点击菜单->Tools 然后打开找到Remote Profiles窗口如下图所示

Remote Profiles

点击add增加一个remote profile需要填写以下几项 
profilename:名字而已任意写我这里写为teet 
platform:这里选择你程序所运行的平台如win 64 或win 32 、ios X等

然后下一步:HostName填写被调试机器的ip地址,PortNumber:默认的,下面密码就填你刚才在被调试机器上那个命令提示符里设置的密码。之后点击Test connection测试一下是否OK,继续点下一步后直接Finish。完成后如下图所示,然后点击OK。

image

好了,一个remote profile就增加好了。下面就可以调试了。

四、调试

1.附加已经运行的进程

点击菜单 Run->Attach to Process按下图选择

image

按上图操作之后远程机器上的进程就显示出来了,这样就实现了远程附加调试进程了。这里说明一点,如果要进行源码调试并且要在源码上设置断点什么的,必须把在编译的时候生成的调试信息符号文件复制到被调试机器上。

2.远程创建被调试进程

点击菜单 Run->Load Process 在左边选择remote 然后设置好Remote path(远程调试机器上的被调试程序所有路径)和remote host(同上面选择host的方法)。Params和Working directory是设置命令行和工作目录的,下面after load根据自己需要选择就可以了

image

相关文章
|
12天前
|
存储 C++
c++的指针完整教程
本文提供了一个全面的C++指针教程,包括指针的声明与初始化、访问指针指向的值、指针运算、指针与函数的关系、动态内存分配,以及不同类型指针(如一级指针、二级指针、整型指针、字符指针、数组指针、函数指针、成员指针、void指针)的介绍,还提到了不同位数机器上指针大小的差异。
17 1
|
13天前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
42 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
4月前
|
存储 算法 编译器
C++ 函数式编程教程
C++ 函数式编程学习
|
4月前
|
存储 编译器 开发工具
C++语言教程分享
C++语言教程分享
|
4月前
|
存储 编译器 C++
|
4月前
|
C++ 存储 索引
面向 C++ 的现代 CMake 教程(一)(5)
面向 C++ 的现代 CMake 教程(一)
77 0
|
4月前
|
缓存 存储 C++
面向 C++ 的现代 CMake 教程(一)(4)
面向 C++ 的现代 CMake 教程(一)
68 0
|
4月前
|
C++ 缓存 存储
面向 C++ 的现代 CMake 教程(一)(3)
面向 C++ 的现代 CMake 教程(一)
98 0
|
4月前
|
缓存 C++ Windows
面向 C++ 的现代 CMake 教程(一)(2)
面向 C++ 的现代 CMake 教程(一)
102 0
|
4月前
|
C++ 容器 Docker
面向 C++ 的现代 CMake 教程(一)(1)
面向 C++ 的现代 CMake 教程(一)
114 0