当前位置: 首页 > 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年每个气象站、每小时的天…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...