﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-待定...-文章分类-调试</title><link>http://www.cppblog.com/Apan/category/8974.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 30 Nov 2008 03:03:31 GMT</lastBuildDate><pubDate>Sun, 30 Nov 2008 03:03:31 GMT</pubDate><ttl>60</ttl><item><title>VC++6.0调试篇：远程调试(转帖，不错)</title><link>http://www.cppblog.com/Apan/articles/68008.html</link><dc:creator>Apan</dc:creator><author>Apan</author><pubDate>Thu, 27 Nov 2008 10:21:00 GMT</pubDate><guid>http://www.cppblog.com/Apan/articles/68008.html</guid><wfw:comment>http://www.cppblog.com/Apan/comments/68008.html</wfw:comment><comments>http://www.cppblog.com/Apan/articles/68008.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Apan/comments/commentRss/68008.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Apan/services/trackbacks/68008.html</trackback:ping><description><![CDATA[<span style="COLOR: red">&nbsp;注：原文地址</span> <a href="http://blog.csdn.net/coding_hello/archive/2008/11/23/3357384.aspx"><strong><font color=#5297f9>http://blog.csdn.net/coding_hello/archive/2008/11/23/3357384.aspx</font></strong></a><br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VC开发环境之所以提供远程调试的能力，是因为有些情况下单机调试会让你崩溃掉。。。比如，调试GUI程序的WM_PAINT消息，因为要单步调试，所以调试器会对界面的重绘产生副作用（Heisenberg不确定性原理）。当然还有些别的情况也适用，比如程序在测试环境运行的好好的，但是在客户那行为总是异常，这时候如果可以TCP远程连接上去维护的话，就能通过远程调试的特性在出现状况的系统环境中排错~
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下面来说一下具体的做法。先明确下概念，远程调试嘛，自然是两个机器之间调试。程序运行在目标机器上，调试器运行在本机。当然，目标机器上还是要有少许辅助程序才能跟本机的调试器connect上，以便通讯。一般来说，只需要copy四个文件到目标机器上就行了：MSVCMON.EXE、DM.DLL、TLN0T.DLL和MSDIS110.DLL。这四个文件都能在VC6目录的Common\MSDEV98\Bin目录下面找到。copy过去之后，运行msvcom.exe，看下图片~</p>
<p><img height=174 alt=目标机器 src="http://p.blog.csdn.net/images/p_blog_csdn_net/coding_hello/EntryImages/20081123/TargetMechine.JPG" width=261 align=center></p>
<p>有个Settings的按钮，不用管。直接点Connect就行了~ </p>
<p>&nbsp;</p>
<p>接着看看本机这边调试器的设置。首先设置好远程调试开关，在Build菜单下有个Debuger Remote Connecting的子菜单，点之。出现个窗口，默认是在Local项，我们要选的是Network(TCP/IP)，然后点设定。会弹出一个对话框，输入目标机器的ip或者机器名，最后点OK就行了。</p>
<p><img height=519 alt=本机调试设置 src="http://p.blog.csdn.net/images/p_blog_csdn_net/coding_hello/EntryImages/20081123/Host.JPG" width=631 align=center></p>
<p>&nbsp;</p>
<p>接下来把工程打开，设置最后一步。假设生成的可执行程序名为RemoteDebug.exe，在目标机器上的路径为d:\Prj\Remote.exe，那么，在本机的Project Settings里面，选择Debug页面的Remote executable path and file name下面的编辑框中输入目标机器中程序的路径：d:\Prj\RemoteDebug.exe。注意，这里写的是从目标机器的角度所看到的路径。</p>
<p>&nbsp;</p>
<p><img height=383 alt=项目设置 src="http://p.blog.csdn.net/images/p_blog_csdn_net/coding_hello/EntryImages/20081123/PrjSetting.JPG" width=379 align=center></p>
<p>然后编译一下程序，把新编译出来的RemoteDebug.exe复制到目标机器的d:\Prj下面，就可以在本机像平常一样调试了。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>要注意的事项：</p>
<p>1.要求本机与目标机器上的版本要完全一样才行。</p>
<p>2.在本机设置远程调试路径时一定要填目标机器上看到的路径，而不是本机看到的网络路径</p>
<p>3.调试开始时，会提示些符号信息的东东，都确定就行了</p>
<p>4.远程调试的设置是全局设置，跟项目无关。实际上，上面提到本机调试器设置时都没打开工程。所以，当不需要远程调试时，要从Build菜单下面的Debuger Remote Connecting的子菜单设置回Local模式。否则每次都会问你要远程的信息噢~~~</p>
<img src ="http://www.cppblog.com/Apan/aggbug/68008.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Apan/" target="_blank">Apan</a> 2008-11-27 18:21 <a href="http://www.cppblog.com/Apan/articles/68008.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>