VS2008远程调试简介

先说明两个概念:

1. 目标机:远程需要调试的机子,也就是被调试程序exe所在的机子,该机子可以安装VS2008或者不安装vs2008;

2. 调试机:安装VS2008的机子,就是存放代码下断点调试的机子,该机子必须安装vs2008;

下面介绍具体设置步骤:

目标机:

1. 如果目标机安装了VS2008,则直接在【开始菜单】->【Microsoft Visual Studio2008】->【VisualStudio Tools】下面找到Visual Studio 2008 RemoteDebugger运行即可;如果目标机没有安装VS2008则需要将调试机上vs2008安装目录下相应的远程debug工具,路径:D:/Program Files/MicrosoftVisual Studio 9.0/Common7/IDE/Remote Debugger/x86拷贝到目标机应用程序所在的目录下,然后运行msvsmon.exe。

注意:此处如果是要根据你的程序是32位或者64位选择不同的版本,如果是在Win7下面还要以管理员身份运行。如果是第一次运行可能需要设置防火墙,请允许防火墙放行。

2. 选择【Tools】->【Options】设置Debugger参数:

这两步后目标机上的设置就完成了,下面介绍调试机上的设置:

调试机:

1. 打开VS2008,打开启动工程属性,在Debugging选项页内,做如下设置:

注意:Remote Command中的路径为目标机上可执行工程的路径;Remote Server Name为目标机的IP地址,设置完成后按F5即可远程调试目标机程序。

需要注意的几个地方:

1. 调试机和被调试机都在一个局域网内,且必须在一个网段;

2. 调试机和被调试机必须登录相同的用户,用户名必须一直关闭防火墙或打开相应的端口,一般是4015;

3. 最重要的一点,这样设置后有可能会出现在调试机上无法设置断点的情况,提示PDB文件不匹配的问题,我就遇到了这个问题,找了好长时间才解决,我的解决方法是在调试机上编译好应用程序后,然后拷贝到目标机上(确保PDB文件一致),并且在你每次在调试机上重新编译了某些库后必须手动拷贝其DLL和PDB文件到目标机上,然后在Remote Command中设置目标机上的路径即可。关于这一条可能还有其他的解决办法,但我没找到,希望有其他的解决方法的朋友留言。

 

配置方法

(1) 远程端:安装VS2005光盘"X:\vs\RemoteDebugger\x86\ rdbgsetup.exe"。或者直接运行或copy本地端的: "ProgramFiles\Microsoft Visual Studio 8\Common7\IDE\Remote Debugger\x86"

(2) 远程端:“本地安全策略 - 安全选项 - 网络访问:本地帐户的共享和安全模式”改为:经典-本地用户以自己的身份验证。

(3) 远程端:启动Remote Debuger,从“工具 - 选项”中将身份验证模式改为“无身份验证,允许任何用户进行调试”。

或者直接用命令行:"X:\ msvsmon.exe" /noauth /anyuser/nosecuritywarn,可以建个快捷方式以方便运行。如下图:

(4) 本地:在VS2005中,“工具”--“附加到进程”,传输选“远程”,限定符输入远程端的主机名或IP地址,回车,终于出来了可爱的进程列表。

**************************附:

启动本地安全策略:

1.单击“控制面板”--“系统和安全”--“管理工具”--“本地安全策略”,会进入“本地安全策略”界面。

2.开始--搜索“运行”--secpol.msc,同样打开“本地安全策略”。

3.win+R--secpol.msc,也可以。

VS2008进行双机调试(远程调试)

准备工作:

1.拷贝C:\Program Files\Microsoft Visual Studio9.0\Common7\IDE\Remote Debugger\x86目录到被调试机

2.主机,被调试机的本地安全策略(gpedit.msc)修改成"经典,本地用户以自己的身份验证"

3.关闭防火墙或打开相应的端口,一般是4015

具体有2种调试方法:

匿名调试:

被调试机的msvsmon下选择option,点击No Authenritaion(native only),在主界面可以看到类似:YYY1:4015

主机打开VS,选择Attach to process

Transport选择Remote (native only No Authenritaion)

Qulifier选择YYY1:4015,之后刷新就可以看到进程列表了

密码验证调试:

这种方法需要主机和被调试机的用户名和密码完全一致,所以还是第一种方法实用.

被调试机的msvsmon下选择option,点击Windows Authentication,在主界面可以看到类似:Administrator@:YYY1

主机打开VS,选择Attach to process

Transport选择Default

Qulifier选择,之后刷新就可以看到进程列表了

远程调试C# WinForm程序

【计算机配置】

0. 系统需求

本地:本地计算机包含所有的源代码,VS要安装;

远程:如图所示。

1. 操作步骤

选择Tools|Permission|在组或用户名称中添加需要进行远程的计算机的名称;

注意:本地和远程的两个计算机必须使用相同的帐户进行登录。

选择Tools|Option|,一定要选择“Windows Authentication”;

注意:测试的时候本地和远程都加入同一域,不知道不加入域能不能连上,没有测试。

【解决方案】

方法一:

1. 打开项目的属性页;

2. 定位到Debug标签;

※ Start Action:选择“Start external program”为

\\172.25.145.51\debug\Walkthrough_SimpleDebug.exe

(此处填写地址的含义是:远程计算机的exe文件,此目录需要完全共享)

※    Start Options:WorkingDirectory选择\\172.25.145.51\debug

※    Use remote machine:172.25.145.51

此时,F5就可以调试远程的程序了

方法二:绑定进程法

打开VS2008,选择Debug---Attach to Process

【测试环境】

本地:WinXP SP2+VS2008 ENU

远程Win2003

1. 附加进程调试又分为两种:

(1)Window身份验证远程调试 (2)匿名远程调试

1.       Windows身份远程调试在调试主机上VS里的附加进程要用默认模式,这里请注意不要被远程模式的字面意思欺骗了,“远程(无身份验证时仅限本机)”这个模式实际上指的是匿名远程调试需要输入被调试的主机名和端口号

2.       Windows身份验证远程调试必须要在调试机和被调试机上使用相同用户名和密码的Windows账户,这样做是为了验证调试机的身份。

3.       将远程调试作为被调试机的服务可以免除“Windows身份验证远程调试必须要在调试机和被调试机上使用相同用户名和密码的Windows账户”这个限制,因为在设置windows服务的时候会要求输入允许进行调试的机器的登录名和密码,只要调试者在他的系统上使用该用户名和密码就可以使用远程调试。

4.       直接远程调试只支持VisualStudio 远程调试器上的windows身份验证调试模式,不支持将远程调试作为被调试机的服务和匿名远程调试

5.       使用匿名远程调试有个问题,附加进程上的被调试机进程没有用户名,导致VS上设置的断点全不起作用,感觉匿名远程调试如同虚设.....至今没有找到解决办法........

6.       使用匿名远程调试的时候如果在msvsmon上没有选择“允许任何用户进行调试”复选框,那么仍然有:“调试机和被调试机上使用相同用户名和密码的Windows账户”这个限制,但是就算是在匿名远程调试下使用相同的用户名和密码你还是会发现附加进程里出现的被调试机进程还是没有用户名,这仍然说明设置断点不起作用

2. 设置

前提条件:

调试机和被调试机都在一个局域网内,且必须在一个网段;

调试机和被调试机必须登录相同的用户,用户名必须一直关闭防火墙或打开相应的端口,一般是4015;

调试机和被调试机的本地安全策略中的网络访问必须改为“经典,本地用户以自己的身份验证”,路径为控制面板->用户管理->本地安全设置->本地策略->安全选项->网络访问

调试方法:

至此有2种调试方法:一种是匿名调试,无需验证,一种是Window身份验证调试:

匿名调试:

1.被调试机的msvsmon下选择工具->选项,点击无身份验证模式(只限本机)

2.之后可以看到主机名和IP,一般是hostname:4015的形式
3.调试机打开VS,选择附加到进程

4.传输选择远程(无身份验证时仅限本机)

5.限定符选择hostname:4015,之后刷新就可以看到进程列表了

Window身份验证调试:这种方法需要调试机和被调试机的用户名和密码完全一致

1.被调试机的msvsmon下选择工具->选项,点击windows身份验证

2.调试机打开VS,选择附加到进程

3.传输选择默认

4.限定符选择username@:hostname,之后刷新就可以看到进程列表了

VS2008远程调试简介相关推荐

  1. VS 远程调试 Azure Web App

    如果能够远程调试部署在 Azure 上的 Web App,将会极大的提高我们修复 bug 的效率.Visual Studio 一贯以功能强大.好用著称,当然可以通吃基于 Azure 应用的创建.发布和 ...

  2. 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 注入工具收尾操作 | 关闭注入的动态库 | 恢复寄存器 | 脱离远程调试附着 )

    文章目录 一.dlclose 函数简介 二.关闭注入的 libbridge.so 动态库 三.恢复寄存器 四.脱离远程调试附着 一.dlclose 函数简介 dlclose 函数的作用是 卸载一个 指 ...

  3. zend studio 远程调试 php

    ZendStudio配置SFTP:结合Zend Debugger进行php代码的远程调试 2012-12-24 09:14 1780人阅读 评论(0) 收藏 举报  分类: PHP(35)  一.配置 ...

  4. visualstudio开始调试不执行_攻击者是如何滥用msvsmon和Windows远程调试器的

    在本文中,我们将为读者详细介绍攻击者是如何滥用msvsmon和Windows远程调试器的. 简介 让无人值守的msvsmon.exe(远程调试器监视器)处于"无需身份验证"模式是一 ...

  5. 使用Python控制1602液晶屏实时显示时间(附PyCharm远程调试)

    前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 本文介绍一下UP板的GPIO资源使用,以及一个使用Python演示一个简单的demo. 本文使用Markdown写成,为获得更好的 ...

  6. 通过QEMU 和 IDA Pro远程调试设备固件

    0x00 背景与简介 这篇文章主要讲了如何在模拟环境下调试设备固件. 作者:Zach Cutlip 原文链接:http://shadow-file.blogspot.gr/2015/01/dynami ...

  7. VS.net中的远程调试

    简介: 我们开发完一个软件后,提交给客户或者放到服务器上执行,如果有问题,我们可以使用远程调试进行发现bug. 这篇文字简单介绍一下远程调试. vs.net远程调试服务 在vs.net的安装目录下,有 ...

  8. SpringBoot官方热部署和远程调试神器,真带劲!

    平时使用SpringBoot开发应用时,修改代码后需要重新启动才能生效.如果你的应用足够大的话,启动可能需要好几分钟.有没有什么办法可以加速启动过程,让我们开发应用代码更高效呢?今天给大家推荐一款Sp ...

  9. java 远程debug 内网_java jdb remote debug - java远程调试

    简介 用log来做调试的方法低效茫目 远程调试是jdk自带的一个有利调试工具,可以快速定位问题 在工作机上使用eclipse来自带的remote debug 问题 运维禁止使用remote debug ...

最新文章

  1. 分布式事物-2pc和3pc区别
  2. mysql的delete的底层实现_MySQL索引的底层实现
  3. 哈希(Hash)算法是一种单向密码体制(它是一个从明文到密文的不可逆的映射只有加密过程没有解密过程)
  4. 面向对象程序设计_面向对象的程序设计(续)
  5. c语言解析json报文源码,GitHub - faycheng/cJSON: cJson源码和源码分析
  6. 编程语言的分类及其优缺点,Python标准输入与输出
  7. Mysql一些导入导出数据库,添加修改字段命令
  8. 枚举类 - Java面向对象编程
  9. 修正mysqlcc在MySQL 5.0上常报的 Table 'xxx' doesn't exist 错误
  10. 如何使用JavaScript或JQuery检测一个URL文件是否存在?
  11. ZOJ3556 How Many Sets I(容斥)
  12. [汇编语言计算机原理] 带开机音乐,速度、进度和行驶方向显示的出租出计费系统设计
  13. n=sizeof(a)/sizeof(int)的含义(C语言)
  14. 如何方便手机在线抖音去水印更有热门技巧
  15. SQL SERVER数据库基本语法汇总,仅代表个人整理,仅供参考
  16. 官方正式(简/繁/英/日/韩文) Windows XP sp3 下载
  17. 愚人节导入_最好的开发商愚人节
  18. CentOS7.x配置三线策略路由
  19. Hive 高级篇(调优)
  20. 2021-2025年中国InGaAs光电二极管及阵列行业市场供需与战略研究报告

热门文章

  1. 并不对劲的[USACO07NOV,洛谷p2886]Cow Relays
  2. 左连接、右连接、交叉连接、全外连接
  3. A Python example for HiveServer2
  4. Android 自定义ToggleButton+用SharedPreferences保存用户配置
  5. Android NDK JNI C++ 3
  6. Linux find+rm -rf 执行组合删除
  7. Linux之seq命令
  8. UNIX高级环境编程 第11、12章 线程同步及属性
  9. 再战JavaScript
  10. WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载]