VC++ 6.0 远程调试 debug

【转 https://www.cnblogs.com/MakeView660/p/9621286.html】

0 前言

  VS2008及以上远程调试上篇已经讲过,这里再讲下VC++6.0开发环境下的远程调试能力,仅需下面4步便可,更方便的就接着后面的5-6步。html

  由于目标程序须要在有采集卡等相关硬件支持下的工控机上工做,工控机上面通常没有调试环境也不会放置源代码(出于保密)。假如工控机上的目标程序运行中出了问题,就须要有调试环境却没法安装采集卡等硬件的笔记本上进行远程调试。windows

1 远程调试条件

  .二者之间使用有线或无线连网。浏览器

  2.目标机器与本机的调试机器链接通信,须要四个文件:MSVCMON.EXEDM.DLLTLN0T.DLLMSDIS110.DLL。它们可在VC6安装文件夹的Common/MSDEV98/Bin下面找到。安全

  3.VC 调试程序执行须要的三个动态库文件:MFC42D.DLLMFCO42D.DLLMSVCRTD.DLL,有时可能须要ntdll.dll,它们可在系统文件夹\windows\system32下找到。网络

  或者经过搜索方式找到以上所需的8个文件,开始--搜索--文件或文件夹--"要搜索的文件或文件夹名为"框中,输入上面的文件,点"当即搜索"按钮搜索,而后将它们所有复制到远程目标机器的执行程序文件夹E:\remote下便可。具备以上条件后,在远程目标机器上双击运行msvcom.exe,无论其它设置,直接点"Connect"按钮便可。session

 

注意Win7以后的系统下,这些文件可能须要和被调试的可执行程序,放在一个文件夹下才能够。ui

2 开发环境的远程调试设置 

  在本机的开发环境中,打开远程调试开关,点菜单 Build——Debugger Remote Connection...,弹出窗口,默认是在Local项(本地,不远程调试时,要改回本地选项),如今要选远程的Network(TCP/IP),而后点按钮Settings...,在弹出框中,输入远程目标机器的IP或者机器名,好比:10.10.1.63,最后点OK便可。spa

3 设定目标机器的执行路径和文件名

  好比在本机笔记本上调试生成的可执行程序名为c:\dkqchtx\debug\dkqchtx.exe,在远程目标机器工控机上的路径为e:\remote\dkqchtx.exe,那么,在本机开发环境的菜单 Project —— Settings,在Debug页面底部的Remote executable path and file name框中,输入在远程的工控机上程序运行所在的路径和文件名e:\remote\dkqchtx.exe  debug

 

4 启动调试

  编译一下程序,把新编译出来的dkqchtx.exe复制到目标机器的e:/remote下面,就能够在本地机器上启动调试了。调试中的询问的信息(可能会有不少)一概按肯定便可。调试

=============

   

  虽然到此就完成了整个远程调试项目,可是这样有一个问题,就是每次小小的改动,编译连接后,都须要将本地机器上的执行文件复制到远程机器设定的路径下才能够调试,也就是须要始终保持二者彻底一致,调试就很不方便,为了改变这种情况,可将远程目标机器的执行程序所在的文件夹读写共享,让本机笔记本上登陆的用户具备读写权,直接将编译连接的执行程序放到远程目标机器上。 

   

5 将本地生成的可执行程序直接放到远程机器的读写共享文件夹下,以方便调试

  1.读写共享远程文件夹

  在远程工控机的E:\盘的根目录下,右击文件夹remote,选择"共享安全",在弹出的框中,点选"共享此文件夹",共享名称改成remote_share,在"容许的用户数量"中输入1,这样防止多用户读写。点按钮"权限",在弹出框的"输入对象名称来选择"中,输入刘亮,这是二者所在的局域网中,登陆到本地笔记本上的用户,点"肯定"按钮,刘亮就会出如今"组或用户名称"框中,选择其中的刘亮,将下面3个选项"彻底控制""更改""读取"都选上,点"肯定"便可,固然能够将用户Everyone 删除会更安全。这样就是让登陆本地笔记本上的用户刘亮,具备读写远程机器上的文件夹E:\remote共享后的能力,以即可将输出的可执行程序,直接写入到远程机器的读写共享文件夹remote_share下。

 

  2.设置开发环境的输出文件位置

  在本地开发环境的菜单 Project -- Settings...,切换到Link页面,在Output file name框中,输入\\10.10.1.63\remote_share\dkqtx.exe,这里10.10.1.63是远程机器的ip地址,remote_share是文件夹共享后的名称,dkqtx.exe是编译连接后输出的调试文件,这样就将输出直接放到远程读写的共享文件夹下。

   

  3.从新设定执行debug会话和目标机器的执行路径和文件名

  在本地开发环境中,Project——Settings...,切换到Debug页面,在Excutable for debug session框中已经跟着自动改成:\\10.10.1.63\remote_share\dkqtx.exe,与上面Link输出设置一致。在本Debug页面底部的Remote executable path and file name框中,要输入在远程的工控机上程序运行所在的路径和文件名e:\remote\dkqtx.exe 便可。注意,这里的文件名称从原来dkqchtx.exe改成 dkqtx.exe 也就是说本地和远程上的文件名,能够是任意只要一致就能够了。

 

  从新全编译链接,Build——Rebuild All,就能够了,之后任何的改动就不须要复制文件,调试很方便。

   

6 将远程共享文件夹映射成本地盘

  以上Link输出和 Debug的会话执行,都是较长的子串\\10.10.1.63\remote_share\dkatx.exe, 为了书写简单,能够在本地机器上,将远程机器共享的文件夹映射成一个本地盘符,方法以下:

  在本地机器的IE浏览器地址栏里,输入远程机器的IP地址:\\10.10.1.63 按回车,右击出现的共享文件夹remote_share——选择映射网络驱动器,在弹出的页面中的驱动器框中,选择一个你本地没有使用的盘符,好比Y:,这样就将远程机器10.10.1.63下的共享文件夹remote_share,映射成Y: ,之后写\\10.10.1.63\remote_share\dkatx.exe的地方,就可简写为Y:\dkqtx.exe ,使用起来很方便。

 

   固然,调试的总条件,须要选择Debug 调试方式,菜单 Build——Set Active Configuration... ,从中选择 Win32 Debug 以后须要从新全编译链接,菜单 Build——Rebuild All

  上面的内容大体都是http://blog.sina.com.cn/s/blog_45eaa01a01014eb5.html 中的内容,如下为亲试截图:

 

 

  最终在目标机器上将程序调试运行起来了~