WinDbg学习笔记四 - 断点

Windbg断点调试 [文章主题]Windbg是Windows驱动调试的重要软件,也是必须学习的软件,前面的博客介绍了一些双机调试的环境配置,只要按照我所说的步骤一步步下来就可以完成环境搭建。本文主要介绍如何调试sys格式的驱动文件,网上很多资料都说得含糊不清,甚至有博主就是简单翻译外文资料,根本没有实际应用,这篇文章将解决这些问题。[环境配置]VM虚拟机(已安装XP系统)DriverMonitor(安装在XP系统中)... 阅读详情

WinDbg提供了多种方式跟命令来设置断点,以bp及查看跟管理断点。bp, bl, bc以及通过界面操作之前都介绍过,这里将不再详述。这里将主要介绍bd, be, bu命令。


bd: 禁用breakpoint

bd * 所有

bd num1,num2 禁用1,2

禁用后的效果如下,



be: 启用breakpoint, 格式类似于bd


bu命令表示设置未定断点,表示所在模块还没有加载到内存中。用bp的时候,如果找不到符号,也会自动变成bu。当模块加载的时候,会尝试再次识别这些未定断点。

下面用一个小例子来演示下bu如何使用。


新建一个library project - Test, 代码如下:

extern "C" __declspec(dllexport) int Fun(int i)
{
    return i * 2;
}

注意一定要有extern "C",否则在生成的DLL里名字会发生改编。


修改DebugSample的main方法如下,



调试DebugSample, 设置断点bp Test!Fun, 因为Test.dll还没加载,bl会显示以下信息,u表示未识别。



在 HMODULE hMod = LoadLibrary(L"Test.dll"); 设置断点,F5运行。


执行完上面这句后,再bl查看,会发现未定的断点现在已经识别了,这个时候就可以调试到这个Fun方法。





WinDbg使用教程:小白也能懂的断点设置方法 通过简单步骤讲解WinDbg使用教程中的断点设置方法,帮助新手快速上手调试程序。结合实际操作场景,让windbg使用教程变得直观易懂,提升问题定位效率。 阅读详情

相关推荐

在Windbg中设置断点追踪打开C++程序远程调试开关的模块

在动态调试的Windbg中设置断点,追踪何处打开了C++程序远程调试开关。

dvlinker的技术专栏 2万+

WinDbg 设置断点

在windbg中,断点设置的地址形式有好多种,可以是以下几种:1.虚拟地址:即给出直接地址,如 123456782.函数偏移量:如DriverEntry+5c.3.源代码+行数 :`[[Module!]Filename][:LineNumber]`4.对C++可以对模块中的某个类的方法设置断点: 设置断点语法:         1:无条件设置断点:  

togoblime的专栏 9738

在Windbg中设置断点追踪打开软件远程调试开关的模块

详细讲解如何在Windbg中设置断点追踪打开软件远程调试开关的模块。

dvlinker的技术专栏 1万+

windbg:设置断点 bp, bu, bm

windbg 中断点设置

Mr.Sugarcane 2597

SDIO_WiFi驱动学习之安卓WLAN架构介绍及调用流程分析

一、引言 上一篇博客大概介绍了MMC子系统和SDIO相关知识及架构,这一篇博客则大致分析安卓的WLAN架构及上层如何调用WLAN驱动的流程。 虽然我工作的开发环境是安卓系统,但由于我不是专业的安卓应用/框架开发工程师,所以对安卓层的一些代码并不是特别熟悉,只能大致梳理流程,不专业的地方请谅解。 本文部分内容摘抄自网络,若有侵权,请联系删除。 二、安卓WLAN架构 1、应用框架(Application framework) 在应用程序框架级别是应用程序代码,它使用各种android.net..

陈子陌的博客 5087

立创EDA开源项目:小北极冰冰杯(夏)——基于ESP32-C3的智能半导体制冷杯硬件设计与功能解析

本文详细解析了基于ESP32-C3的智能半导体制冷杯——小北极冰冰杯的硬件设计与核心功能。项目利用半导体制冷片实现快速降温,并集成了PWM智能调速散热、四路温度监控、杯具检测及PD/DC双电源输入等实用功能。文章深入剖析了其硬件架构、控制逻辑及实战注意事项,为嵌入式开发与智能硬件爱好者提供了宝贵的参考。

weixin_33245447的博客 271

WinDBG 设置条件断点

Conditional breakpoints can be veryuseful when you are trying to find bugs in your code. They cause a break tooccur only if a specific condition is satisfied. 当你在尝试找到你代码中的bug时,条件断点非常有用。当某个特殊条件满足时它才

lixiangminghate的专栏 1951

说一说系统/子系统规格说明

《系统/子系统规格说明》都是从用户的角度以软件的维度来描述系统的功能、性能、业务流程、数据流和控制流等,并描述内外部接口需求、资源使用情况等.

weixin_40725543的博客 5428

WinDBG 调试技巧之设置条件断点

WinDBG 调试技巧之设置条件断点 Setting a Conditional Breakpoint Conditional breakpoints can be veryuseful when you are trying to find bugs in your code. They cause a break tooccur only if a specifi

itmes的专栏 8092

PrimeTime生成.lib竟暗藏PG添加Bug

1. 确认原始库中是否包含PG引脚的定义。2. 查阅PrimeTime的write_lib命令文档,寻找相关选项。3. 在生成库时使用正确的选项,例如-include_pg_pins或类似参数。4. 验证生成的.lib文件是否包含pg_pin部分。

limanjihe的专栏 1919

某讯天御滑块验证码逆向实战:从参数解析到环境对抗

本文详细解析了某讯天御滑块验证码的逆向工程实战技巧,从关键参数解析到浏览器环境模拟对抗。重点介绍了collect、eks等参数的逆向思路,以及如何通过puppeteer等工具补全环境检测,帮助开发者有效突破验证码防护。文章还提供了常见错误解决方案和性能优化建议,是验证码逆向领域的实用指南。

weixin_29325007的博客 437

windbg 断点+单步

1.设置断点 bp,bu,bm 软中断 [~td] bp[ID] [Options] [Address[Passess]] ['CommandString'] ~td:线程序号。如果设置了线程序号,则只有当该线程调用才会触发断点。 ID:断点编号,如果不指定则从0开始编排 Address:断点地址,eg:TestModals 模块的Func 函数 TestModals!Func Passess:...

CAir2的专栏 5167

DPO(Direct Preference Optimization)实战全流程指南

《DPO实战全流程指南》摘要 本文提供了端到端的DPO(直接偏好优化)实战方案,包含数据准备、模型训练、评估部署全流程。核心内容包括: 数据构建:推荐UltraFeedback等高质量数据集,提供数据预处理代码 训练配置:基于HuggingFace TRL库的DPO实现,详解beta值等关键参数调优 工业优化:显存节省技巧(LoRA、梯度检查点)、领域自适应方法和在线学习架构 效果评估:量化对比显示DPO可降低86%有害回复率,提升24%用户满意度 常见问题:针对灾难性遗忘、过度安全化等问题给出解决方案 附

技术引领业务创新 1466

Windbg断点命令

Windbg断点命令 1. 设置断点命令bu bp bm ba 1) bu bp bm设置软件断点 a). bp设置地址关联的断点 b). bu设置符号关联的断点 c). bm支持设置含通配符的断点,可以一次创建一个或多个bu或bp (bm /d)断点 bp和bu

alex_bn的专栏 2031

【Matlab】matlab代码实现迭代学习控制

该文介绍了在Matlab中实现迭代学习控制(ILC)的方法。ILC通过利用历史轨迹数据来优化重复任务的控制性能。文章提供了一个步进电机控制示例,包括:1)定义正弦轨迹;2)设置100次迭代和0.1学习率;3)建立二阶系统模型;4)执行ILC算法计算控制输入;5)绘制期望轨迹与实际输出的对比图。该示例展示了ILC的基本实现过程,并指出实际应用可能需要更复杂的设计。代码演示了误差计算、控制输入更新和结果可视化等关键步骤。

unber的博客 200

【100%通过率】华为OD机试真题 Python 实现【水库蓄水问题】【2022.11 Q4 新题】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 1万+

WinDBG常用断点命令

WinDBG提供了多种设断点的命令: bp 命令是在某个地址下断点, 可以 bp 0x7783FEB 也可以 bp MyApp!SomeFunction 。 对于后者,WinDBG 会自动找到MyApp!SomeFunction 对应的地址并设置断点。 但是使用bp的问题在于:1)当代码修改之后,函数地址改变,该断点仍然保持在相同位置,不一定继续有效; 2)WinDBG

iT2afL0rd's Blog 8996

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

关于WinDbg 设置断点的问题

基础知识 bp 程序运行过程中下断点bu 程序未加载之前下断点bl  列出所有断点bc  清除断点 今天在调试驱动的时候 发现下好断点后 无法调试WinDbg显示 kd> gBreakpoint 11s offset expression evaluation failed.Check for invalid symbols or bad synt

lijiawlm的专栏 5359

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

WinDbg 下断点命令详解

WinDBG 技巧:设断点命令详解(bp, bu, bm, ba 以及bl, bc, bd, be) bp 命令是在某个地址下断点, 可以 bp 0x7783FEB 也可以 bp MyApp!SomeFunction 。 对于后者,WinDBG 会自动找到MyApp!SomeFunction 对应的地址并设置断点。但是使用bp的问题在于:1)当代码修改之后,函数地址改变,该断点仍然保持在相同

OSReact的专栏 2861

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

windbg条件断点

假设源文件a.cpp如下所示:void main(){    int sum = 0;    for (int i = 0; i    {        sum += i;    }} 要在第6行下一个条件断点,当i>=6的时候断点生效,则可以用如下命令:bp `a.cpp:6` ".if(poi(i)解释如下:.if, .else是windbg条件判定命令,格式为.if(条件) {表达式1} .

mountaintai二世的运动场 4027

Windbg断点 dt命令

bp 在某个地址下断点   bp 0x7783FEB   bp MyApp!SomeFunction   对于后者,Windbg会找到MyApp!SomeFunction对应的地址并设置断点。使用bp的问题:1、代码修改之后,函数地址改变,该断点仍然保持在相同位置,不一定继续有效;2、Windbg不会把bp断点保存工作空间中,所以,我比较喜欢用bu 命令。bu 针对某个符号下断点。   bu

svtanto的专栏 3396

用Windbg+脚本,设置消息断点

转自:http://bbs.pediy.com/showthread.php?t=180556&highlight=windbg 以鼠标左键按下消息为例, 用WinDbg来捕获. 对于Win7X64下的计算器程序, 用Spy++监视单独一个按钮的消息(e.g. 清除按钮C), 当排除无关消息后. 可以看到按钮按下的消息是 WM_LBUTTONDOWN 代码:  0

superliuxing的专栏 2520

WinDBG调试断点命令详解

1.WinDbg下载:   Install Debugging Tools for Windows 32-bit Version http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx   Install Debugging Tools for Windows 64-bit Versions http://www.m

g710710的专栏 1890

用WinDbg断点调试FFmpeg

本文主要讲解 WinDbg 调试器的使用。WinDbg在 Windows 里面的地位,就跟 GDB 在 Linux 的地位一样。可以通过 微软的官方网站 安装 WinDbg。 WinDbg 是比较轻量级的调试工具,在一些场景下比较实用,例如不方便安装 vs2019。...

u012117034的博客 843

5min学会WinDBG条件断点

1.前言 很多时候我们可以使用Spy++查看某个窗口的消息,但是有一定的局限性。 以编辑控件为例,我们打开Spy++截获应用程序的EM_GETTEXTRANGE消息,却只能看到TEXTRANGE结构的指针值,看不到结构的内容。 如果想要详细查看消息的WPARAM和LPARAM参数,Spy++是无能为力的。 但是可以通过W...

systomnet的专栏 850
上一篇: C++ DLL导出函数的两种方法(导出序号那种方法,别人看不到函数名)
下一篇: Dependency Walker使用说明
imJaron
博客等级 码龄11年 121粉丝 286原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值