Window和linux远程调试技术


在程序开发过程中,都会存在调试,有些程序需要在特定的机器上运行,而开发时由不能再特定机器上安装开发工具,因此就存在远程调试,window下的调试和linux下调试也存在差异,这里以window调试和linux调试为例,记录调试环境的搭建

1. VS2010远程调试Window程序,存在2种方案。

  一、目标机器设置:

   首先进入VS2010安装目录,找到Remote Debugger, E:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger(根据不同电脑路径有差别)


  里面有3个目录,根据目标机器不同,拷贝不同的目录到目标机器,在目标机器里面运行msvsmon.exe程序


二、本地机器设置

   1)打开VS2010,选择Tools->Attach to Process


输入目标机器IP,点击Refresh,列表里面会显示目标机器中的所有进程,点击Attach,就可以加载目标机器程序进行调试。

这样设置调试的前提是目标程序需要是Debug版本,包含编译的pdb文件。同时由于目标机器运行的是Debug版本,需要拷贝依赖的一些VS库。

由于目标程序是从本地机器编译拷贝过去的,因此本地调试时,可以找到源码进行调试。

2)点击File->Open->Project/Solution找到需要调试的exe文件打开

   在Solution中右键点击Properties,在Debug Source Files中添加源码路径

   点击打开的exe文件,右键Properties


在Executable中输入目标机器上需要调试的程序路径(不是相对本机的共享路径)

在Connection中输入没有认证的远程调试

在Machine中输入目标机器是IP地址

在Working Directory中输入exe所在的目录

这样设置后就可以直接启动远程程序进行调试。和第一种方案差别是,在方案一中程序已经运行,只能是附加调试,而方案2可以直接启动程序运行。


2. Linux远程调试,采用客户端调试服务器端

   1)服务器端在终端输入:gdbserver 客户端IP:端口 服务器端需要调试的程序

  2)客户端在终端输入:gdb file 服务器端运行的程序

                           >  target remote 服务器端IP:端口

   这样调试的时候就可以找到源码

 一、 在调试过程中,如果不想停在系统中断中,可以输入handle all noprint nostop

二、根据已经运行的程序,使用attach 命令 ,解除使用detach

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值