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

WinDbg配置远程调试

WinDbg配置远程调试

1、为什么需要远程调试

某些特殊的场合需要远程调试,如:

①调试特殊的程序,比如在调试全屏程序,内核。

②需要别人帮助调试或者帮助别人调试。比如由于商业性质不能直接给你pdb和源代码。

③还有一类就是在指定的机器上复现,此时dump也不好使。(下一篇文章我会介绍)

2、支持的远程协议有哪些?

从微软的官方文档来看,协议很丰富。有TCP,PIPE,SSL,COM,1394。其中最古老的要属1394,至今某些台式机器仍然保留这一接口。

3、介绍tcp协议方式

在这篇文章,我主要介绍tcp的方式。

注意:在配置远程调试,须保持两端的WinDbg版本一致。

我们先介绍下模式,既是远程调试,那就分为server端和client端。

举个例子:我现在有个疑难杂症搞不定,需要同事帮忙解决。我需要开启WinDbg的server模式,那我就是server端。同事连接进来就是client端。

有两种方式启动远程调试。这两种方式各一点差异,一个需要懂点WinDbg知识,一个就是类似小白模式。

3.1 小白模式

在安装WinDbg的目录中找到DbgSvr程序。

比如我这里:
在这里插入图片描述

注意看这里有很多的dbgsrv.exe,你该选择哪个呢?这是有讲究的。

如果你是要调试x86程序,那就选择上面红框中的dbgsrv.exe。如果是调试x64程序,那就需要选择amd64目录下的程序。

我曾经在这里吃过亏,一调试就报如下的错误。
在这里插入图片描述

管理员的权限打开cmd,进入此目录,如果不想每次这么麻烦就可以把此路径加入环境变量path中。下次开机就可以生效。
在这里插入图片描述

可以输入dbgsrv.exe /?,查看dbgsrv的简单使用方式。

在输入dbgsrv.exe -t tcp:port=18888,要是没有任何的错误表示成功,等待client端连接。

在这里插入图片描述

在client端打开WinDbg,菜单栏中选择File打开,出现如下画面:

按照上面的格式输入tcp:server:192.178.2.10, port=18888,这里其实还加上密码参数更为安全,最后点击OK
在这里插入图片描述

如果连接没有问题就会出现如下的画面,我们在server端再起一个notepad进程。
在这里插入图片描述
在这里插入图片描述

3.2 入门模式

比如我现在正在调试notepad.exe,在server端的WinDbg命令行输入.server tcp:port=18888,password=abcc

0:009> .server tcp:port=18888, password=abcc
Server started.  Client can connect with any of these command lines
0: <debugger> -remote npipe:Pipe=DbgX_10353c0f6e1d413fb8a6a0f047ef46eb,Password=*,Server=192.168.2.10
1: <debugger> -remote tcp:Port=18888,Server=192.168.2.10

在client端,打开WinDbg,输入tcp:server=192.178.2.10,port=18888, password=abcc,这里需要把ip地址换成你自己的。
在这里插入图片描述

成功之后在client端显示的画面:

0:009> .server tcp:port=18888, password=abcc
Server started.  Client can connect with any of these command lines
0: <debugger> -remote npipe:Pipe=DbgX_10353c0f6e1d413fb8a6a0f047ef46eb,Password=*,Server=192.168.2.10
1: <debugger> -remote tcp:Port=18888,Server=SIH-D-697.cn.net.ntes
192.168.2.10 (tcp [::ffff:192.168.2.10]:51941) connected at Mon Aug  5 20:01:37 2024

server端显示的画面:

0:009> .server tcp:port=18888, password=abcc
Server started.  Client can connect with any of these command lines
0: <debugger> -remote npipe:Pipe=DbgX_10353c0f6e1d413fb8a6a0f047ef46eb,Password=*,Server=192.168.2.10
1: <debugger> -remote tcp:Port=18888,Server=SIH-D-697.cn.net.ntes
192.168.2.10 (tcp [::ffff:192.168.2.10]:51941) connected at Mon Aug  5 20:01:37 2024

之后你在client输入的命令就会同步到server端的WinDbg。

此时可以在client端的WinDbg输入k:

0:009> k# Child-SP          RetAddr               Call Site
00 000000f9`fb1ffd38 00007fff`9e07cafe     ntdll!DbgBreakPoint
01 000000f9`fb1ffd40 00007fff`9d127374     ntdll!DbgUiRemoteBreakin+0x4e
02 000000f9`fb1ffd70 00007fff`9dffcc91     KERNEL32!BaseThreadInitThunk+0x14
03 000000f9`fb1ffda0 00000000`00000000     ntdll!RtlUserThreadStart+0x21

相关文章:

WinDbg配置远程调试

WinDbg配置远程调试 1、为什么需要远程调试 某些特殊的场合需要远程调试&#xff0c;如&#xff1a; ①调试特殊的程序&#xff0c;比如在调试全屏程序&#xff0c;内核。 ②需要别人帮助调试或者帮助别人调试。比如由于商业性质不能直接给你pdb和源代码。 ③还有一类就是…...

spl注入实战thinkphp

目录 一、环境的部署 二、本地创建数据库 三、填写数据库连接文件 四、编写控制器 五、访问分析 debug报错会显示物理路径 原因是config.php文件相关配置 六、注入分析 七、进入断点调试 八、通过mysql执行语句查看结果 九、总结&#xff1a; 一、环境的部署 二、本地…...

整理深度学习时最常用的Linux命令(自用)

清华大学镜像源&#xff1a; https://pypi.tuna.tsinghua.edu.cn/simple/tar文件解压 tar -xzvf xxx.tar.gztar xvf xxx.tarzip文件解压 unzip xxx.zip -d path/to/your/fold清理GPU异常内存占用 杀掉 1 号显卡的所有进程 fuser -v /dev/nvidia1 | xargs -t -n 1 kill -9杀掉…...

LVS——>linux 虚拟服务器知识汇总

一、概念&#xff1a; LVS&#xff08;Linux Virtual Server&#xff09;&#xff0c;是Linux Virtual Server的简写&#xff0c;也就是Linux 虚拟服务器&#xff0c;是一个虚拟的服务器集群系统负载均衡解决方案&#xff0c;它将一个真实服务器集群虚拟成一台服务器来对外提供…...

AI赋能周界安防:智能视频分析技术构建无懈可击的安全防线

周界安全防范是保护机场、电站、油库、监狱、工业园区等关键设施免受非法入侵和破坏的重要措施。传统的周界安防手段主要依靠人员巡查和物理屏障&#xff0c;但这种方式不仅人力成本高&#xff0c;而且效率较低&#xff0c;难以满足日益复杂多变的安全需求。随着AI技术的引入&a…...

FastAPI+Vue3工程项目管理系统项目实战私教课 上课笔记20240808 课程和学习计划制定

学习目标 将Word和Excel做的东西放到数据库里面去工程类公司&#xff0c;甲方&#xff0c;劳务存到数据库存储的信息主要是人员的信息 基本信息&#xff1a; 人员信息&#xff0c;资料库&#xff0c;甲方的人出现在哪些项目上&#xff0c;考勤材料信息&#xff0c;进货记录&…...

Robot Operating System——发布相对湿度数据

大纲 应用场景定义字段解释 案例 sensor_msgs::msg::RelativeHumidity 是 ROS (Robot Operating System) 中的一个消息类型&#xff0c;用于表示相对湿度数据。 应用场景 环境监测 气象站&#xff1a;在气象站中&#xff0c;相对湿度传感器可以用于监测环境湿度&#xff0c;帮…...

一文搞懂后端面试之不停机数据迁移【中间件 | 数据库 | MySQL | 数据一致性】

数据迁移方面的工作&#xff1a; 重构老系统&#xff1a;使用新的表结构来存储数据单库拆分分库分表、分库分表扩容大表修改表结构定义 数据备份工具 MySQL上常用的两款数据备份工具&#xff1a;mysqldump和XtraBackup mysqldump&#xff1a;一个用于备份和恢复数据库的命令…...

【ESP01开发实例】- ISD1820录音控制

ISD1820录音控制 文章目录 ISD1820录音控制1、ISD1820模块介绍2、硬件准备及接线3、代码以实现录音技术已经取得了长足的进步,它已成为从语音助手到安全系统的各种应用不可或缺的一部分。如果您有兴趣构建自己的录音系统,将 ISD1820 模块与 ESP01 微控制器相结合可能是一个不…...

Linux驱动面试高频考点后面继续改整理

Linux驱动开发是将硬件设备与操作系统内核连接起来的重要环节&#xff0c;它涉及到设备模型、中断处理、文件操作等方面&#xff0c;是一项挑战性且充满乐趣的工作。今天给大家分享45道Linux驱动面试高频考点&#xff0c;直接上干货。 1、驱动程序分为几类&#xff1f; 内核驱动…...

【Python】nn.ConvTranspose1、2、3d()函数详解和示例

前言 在深度学习中&#xff0c;特别是在处理图像、音频和三维数据时&#xff0c;转置卷积&#xff08;Transposed Convolution&#xff09;或称为反卷积&#xff08;Deconvolution&#xff09;是一种非常重要的操作。PyTorch提供了nn.ConvTranspose1d、nn.ConvTranspose2d和nn…...

vtkConnectivityFilter提取连通区域中的问题

直接使用vtkConnectivityFilter提取连通区域&#xff0c;渲染上没问题&#xff0c;但是打印出polydata中的点数&#xff0c;发现跟原始数据是一致的。 for (int i 0; i < numRegions; i){vtkSmartPointer<vtkConnectivityFilter> connectivityFilter vtkSmartPointe…...

购物系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;商品分类管理&#xff0c;商品信息管理&#xff0c;特价商品管理&#xff0c;用户管理&#xff0c;留言板管理&#xff0c;订单管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&…...

做报表用什么工具?不想再用Excel了!!!

一、什么是中国式报表&#xff1f; 不知道大家现在还是使用Excel来制作报表&#xff0c;然后跟领导汇报工作吗&#xff1f;虽然Excel功能很强大&#xff0c;但是用Excel做过中国式报表的小伙伴一定知道它的制作过程有多复杂。 中国式报表可以用一句话简单概括&#xff1a;格式…...

c++实现学生管理系统(附源码)

目录 一、基本功能&#xff1a; 二、包含的模块&#xff1a; 三、系统介绍 1. 学生管理系统的功能&#xff1a; 2. 具体的需求&#xff1a; 3. 支持的标准&#xff1a; 四、系统结构功能图&#xff1a; 五、系统设计 1. 退出系统&#xff1a; 2. 增加学生&#xff1a…...

JS防抖是什么?干嘛用的?

你好同学&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏和关注&#xff01;个人知乎 防抖在前端开发中可以说经常用到&#xff0c;有诸多使用场景。接下来我们一起看下防抖的定义、防抖函数的实现、应用场景、lodash防抖函数以及防抖在框架中的使用。Let’s go 一、什么是防…...

Linux磁盘管理与文件系统(二):实用工具和命令、fdisk分区示例

文章目录 4、查看或管理磁盘分区-fdisk格式选项示例 4、示例&#xff1a;使用 fdisk 命令创建分区需求操作步骤 5、创建文件系统-mkfs格式常用选项示例创建其他类型的文件系统 6、创建文件系统-mkswap格式常用选项示例拓展&#xff1a;关闭和启用交换分区拓展&#xff1a;swap分…...

使用vtkRenderer创建的显示点云的窗口如何刷新(QT/C++)

一、使用vtkRenderer创建点云显示窗口&#xff0c;参考 在Qt创建的UI中放一个显示点云的窗口&#xff08;PCLQT5&#xff09;_pcl点云和qt-CSDN博客 二、刷新vtkRenderer创建的窗口 使用场景&#xff1a;在某些情况下代码中需要对显示窗口的显示物改动&#xff0c;例如通过滑…...

Mysql绕过小技巧

上源码。 <?php $mysqli new mysqli("localhost", "root", "root", "security");/* check connection */ if ($mysqli->connect_errno) {printf("Connect failed: %s\n", $mysqli->connect_error);exit(); }$my…...

气象大数据案例项目(求各气象站的平均气温)

气象大数据案例项目&#xff08;求各气象站的平均气温&#xff09; 一、项目需求二、数据格式三、项目开发3.1 在windows 进行开发3.2 运行结果3.3 对项目打包 一、项目需求 现在有一份来自美国国家海洋和大气管理局的数据集&#xff0c;里面包含近30年每个气象站、每小时的天…...

保姆级教程:用iSYSTEM winIDEA和iC5000给S32K148烧录程序,附完整配置流程

从零掌握iSYSTEM工具链&#xff1a;S32K148开发板烧录与调试全流程实战第一次接触iSYSTEM的winIDEA和iC5000仿真器时&#xff0c;很多嵌入式开发者都会感到无从下手。不同于常见的开源工具链&#xff0c;这套专业级开发环境在汽车电子和工业控制领域有着广泛应用&#xff0c;尤…...

UE5 BaseEditorSettings.ini加载原理与配置生效机制

1. 为什么你改了BaseEditorSettings.ini却没生效&#xff1f;——从UE5编辑器启动流程讲起很多人在UE5项目里折腾半天&#xff0c;把BaseEditorSettings.ini文件翻来覆去改了十几遍&#xff0c;重启编辑器后发现&#xff1a;缩放比例还是不对、网格间距没变、甚至“启用实时预览…...

从一次生产事故复盘:我们如何优雅地处理用户上传的‘异常’Excel文件(附Apache POI配置详解)

从生产事故到防御体系&#xff1a;构建Excel文件处理的工程化解决方案那天凌晨2点&#xff0c;我被一阵急促的告警声惊醒。监控系统显示&#xff0c;核心文件处理服务的错误率在10分钟内飙升到35%&#xff0c;大量用户上传的Excel文件无法正常解析。更糟糕的是&#xff0c;部分…...

Python合并Excel文档

有若干个Excel文档&#xff0c;每个文档格式一致&#xff0c;及第一行为文件标题&#xff0c;第二行为表格表头&#xff08;表头不完全一致&#xff09;。现需要将他们合并。合并规则为&#xff1a;去掉每个文档的第一行&#xff0c;以第二行为表头&#xff0c;将每个文档的第三…...

从入门到实践:EEG公开数据集分类与应用场景全解析

1. EEG公开数据集入门指南刚接触脑电信号分析的研究者&#xff0c;常常会被一个问题困扰&#xff1a;"我应该从哪里获取可靠的EEG数据&#xff1f;"作为一个在这个领域摸爬滚打多年的研究者&#xff0c;我完全理解这种困惑。记得我第一次接触EEG研究时&#xff0c;光…...

组态王通用扫码枪配置

使用组态王扫码枪驱动&#xff0c;是绑定变量&#xff0c;扫码后直接就可以显示扫码内容。解决每次扫码输入数据时必须先用鼠标点进输入框内的问题。驱动安装先添加驱动&#xff0c;亚控网站的文件为 barcodescanner&#xff0c;这个文件是组态王通用扫码枪的驱动&#xff0c;但…...

基于可解释机器学习的城市人口流动空间降尺度分析实践

1. 项目概述&#xff1a;从宏观到微观&#xff0c;解码城市脉搏在城市的肌理中&#xff0c;人口的流动如同血液的循环&#xff0c;承载着经济活力、社会互动与空间结构的全部信息。无论是城市规划师优化公交线路&#xff0c;还是商业分析师评估店铺选址&#xff0c;亦或是公共卫…...

BiliRoamingX:彻底解决B站体验限制的完整增强方案

BiliRoamingX&#xff1a;彻底解决B站体验限制的完整增强方案 【免费下载链接】BiliRoamingX-integrations BiliRoamingX integrations and patches powered by ReVanced. 项目地址: https://gitcode.com/gh_mirrors/bi/BiliRoamingX-integrations 你是否曾为B站的内容区…...

别让依赖毁了你的实验:记一次Vision Mamba复现中causal_conv1d与mamba-ssm的版本“打架”事件

Vision Mamba复现实战&#xff1a;破解依赖冲突的工程化解决方案在深度学习项目的复现过程中&#xff0c;依赖管理往往是最容易被忽视却又最常导致问题的环节。最近在复现Vision Mamba模型时&#xff0c;我遭遇了一场典型的Python依赖"战争"——causal_conv1d与mamba…...

Windows 11 LTSC安装微软商店的终极解决方案:3步恢复完整应用生态

Windows 11 LTSC安装微软商店的终极解决方案&#xff1a;3步恢复完整应用生态 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore LTSC-Add-MicrosoftStor…...