当前位置: 首页 > news >正文

WinDBG 技巧: 如何用WinDBG远程调试程序

在某些情况下我们需要进行远程调试(比如该程序运行需要时候全屏,或者程序在客户的机器上crash崩溃), 这时候可以使用WinDBG的远程调试功能。

WinDBG的远程调试由服务端和客户端组成,和visual studio类似。 被调试的机器是服务端(server), 我们做调试的机器是客户端(client)。 两台机器都需要安装WinDBG。

第一步, 建立WinDBG server 端。

使用 -server 参数可以使WinDBG 以服务器方式启动。 WinDBG可以用多种连接协议让客户端连接,比如命名管道(named pipe), 安全管道(secure pipe), TCP 协议(socket), SSL 协议, 串口/并口(COM port) 等等。

命名管道

WinDBG.exe -servernpipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable][-noio][Options]

TCP 协议

WinDBG.exe -servertcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable][-noio][Options]
WinDBG.exe -servertcp:port=Socket,clicon=Client[,password=Password][,ipversion=6][-noio][Options]

串口/并口
WinDBG.exe -servercom:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden],password=Password][-noio][Options]

安全管道

WinDBG.exe -serverspipe:proto=Protocol,certuser=Cert|machuser=Cert},pipe=PipeName[,hidden],password=Password][-noio][Options]

SSL 协议

WinDBG.exe -serverssl:proto=Protocol,certuser=Cert|machuser=Cert},port=Socket[,hidden],password=Password][-noio][Options]
WinDBG.exe -serverssl:proto=Protocol,certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password][-noio][Options]

示例:

WinDBG.exe -servernpipe:pipe=DbgPipe winmine.exe (使用命名管道DbgPipe 建立调试服务,调试winmine.exe 程序)

WinDBG.exe -servertcp:port=1025-p 122 (使用TCP协议,在端口1025建立调试服务, 调试机器上进程号为122的程序, 或者说Attach 到122进程进行调试)

第二步, 用WinDBG client 端连接服务端

使用 -remote 参数可以使WinDBG 以客户端方式启动去连接服务端, 可以指定不同的连接方式:

命名管道

WinDBG.exe -remote npipe:server=Server,pipe=PipeName[,password=Password]

TCP 协议

WinDBG.exe -remote tcp:server=Server,port=Socket[,password=Password][,ipversion=6]
WinDBG.exe -remote tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6]

串口/并口

WinDBG.exe -remote com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password]

安全管道

WinDBG.exe -remote spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password]

SSL 协议

WinDBG.exe -remote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password]
WinDBG.exe -remote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password]

示例 (假设被调试的机器名字是dbgPC):


WinDBG.exe-remotenpipe:server=dbgPC,pipe=DbgPipe (使用命名管道DbgPipe 建立连接被调试机器dbgPC)


WinDBG.exe-remotetcp:server=dbgPC,port=1025 (使用TC协议, 连接被调试机器dbgPC的端口1025)

关于Windows 远程调试更多详细的内容,请参考MSDN http://msdn.microsoft.com/en-us/library/cc266457.aspx

相关文章:

  • CString的GetBuffer用法
  • ARX 常用函数2
  • 各大网站M8评测集结
  • OBJECT ARX 遍历数据库所有图元代码
  • OBJECT ARX 总结5道题
  • ARX 选择集获得所有图形 遍历 实例 备忘
  • ARX 实体的偏移
  • XP系统优化简单实用技法收藏
  • ARX 集合类型 AcGe类
  • ARX 创建组实例(新建组,选择实体添加到组,输入层,修改组所在的层)
  • Firefox 3.1 Beta 3下周推出 新增Beta 4
  • C# 使用zedgraph绘制 柱状图
  • [Web开发] 网页的浏览器兼容性测试工具
  • [Windows编程] 如何捕捉程序异常/crash 并生成 dump 文件
  • zed graph使用经验
  • [笔记] php常见简单功能及函数
  • Babel配置的不完全指南
  • E-HPC支持多队列管理和自动伸缩
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Vultr 教程目录
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 从setTimeout-setInterval看JS线程
  • 大型网站性能监测、分析与优化常见问题QA
  • 规范化安全开发 KOA 手脚架
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 记一次和乔布斯合作最难忘的经历
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 为视图添加丝滑的水波纹
  • 我的面试准备过程--容器(更新中)
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 正则表达式小结
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (14)Hive调优——合并小文件
  • (C++20) consteval立即函数
  • (c语言)strcpy函数用法
  • (二)pulsar安装在独立的docker中,python测试
  • (分享)自己整理的一些简单awk实用语句
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (四) Graphivz 颜色选择
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)ABI是什么
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • *Django中的Ajax 纯js的书写样式1
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [BZOJ 3680]吊打XXX(模拟退火)
  • [COGS 622] [NOIP2011] 玛雅游戏 模拟
  • [HEOI2013]ALO
  • [NKCTF 2024]web解析