WinDbg 随笔 001 —— HelloWorld + WinDbg

声明:个人笔记,概不负责

今天搞出个 C 程序,连 main 都进不了,WinDbg 也没办法断,无奈只能架起 宇宙第一的 Visual Studio 写个 HelloWorld 对比一下差异。

这 WinDbg 断 HelloWorld 我搞过好多回了,每次都随机抛弃,干脆这次写个笔记,下次好查。

这也可以做为 WinDbg 零基础的人,进入 WinDbg 世界的第一站。

吐槽:以前长期写应用程代码,到 Driver 层第一次搞 WinDbg 时,周围有些人的态度让我觉得是侮辱智商。
一些家伙连基本 C 代码都搞不利索,就拿个会用 WinDbg 在那里摇啊摇,还把它当个技能。
我勒个去,你 C 代码都整不利索,还能理解二进制运行模型?WinDbg 于你而言,不就是等同 DOS 命令吗?

Hello World 之前的世界

一秒钟的答案

0:000> kL# Child-SP          RetAddr               Call Site
00 0000004f`9ff0fca8 00007ff6`6a432259     ConsoleApplication1!main
01 0000004f`9ff0fcb0 00007ff6`6a432102     ConsoleApplication1!invoke_main+0x39
02 0000004f`9ff0fd00 00007ff6`6a431fbe     ConsoleApplication1!__scrt_common_main_seh+0x132
03 0000004f`9ff0fd70 00007ff6`6a4322ee     ConsoleApplication1!__scrt_common_main+0xe
04 0000004f`9ff0fda0 00007ffe`cf19e8d7     ConsoleApplication1!mainCRTStartup+0xe
05 0000004f`9ff0fdd0 00007ffe`cfa8c53c     KERNEL32!BaseThreadInitThunk+0x17
06 0000004f`9ff0fe00 00000000`00000000     ntdll!RtlUserThreadStart+0x2c

为小白铺路,为“知识”平权

Step-by-Step for key points.

不过 VS 中编个 C 的 Hello World 与 安装启动 WinDbg 就不啰嗦了,现在网上下个 WinDbg Preview 轻松 + easy 啊。

Step 1

用 WinDbg 启动 编出来的 exe ,进入后的 第一次 画面,要素标注,量大管饱

(用 WinDbg 全 GUI 界面,去启动 exe 操作,傻瓜式,略)

image

Step 2

查 感兴趣的 函数(需要 Symbol,但这东西你自己编出来的,肯定有)

设断点(略,手册有,在查出来 在函数名上 鼠标右键 也可以搞)

查看已设立的断点

image

Step 3

终极世界,g 啊 go 然后 k 看调用堆栈

image

=====
华丽的 结束线

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/966474.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构2:单链表 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

20251115 - Hash 总结

你说得对,但我几乎从来不把哈希叫做哈希,我习惯了叫 Hash。 比赛链接:https://vjudge.net/contest/766880。 卡 Hash 的出题人都是毒瘤出题人喵!一点也不良心。 A - Barn Echoes G 由于这个长度只有 \(80\),因此随…

BZOJ2372 music

思路 两个字符串等价,相当于两个串中排名相同的字符,出现的位置相同。 于是我们哈希,分别维护每种字符的出现位置序列。 现在瓶颈在于得到每种字符的排名。 发现字符集只有 \(25\),可以直接枚举,桶排即可。然后再…

P11664 [JOI 2025 Final] 缆车 / Mi Telefrico

思路 注意到,DAG 符合条件当且仅当节点 \(2 \sim n\) 的入度都不为零。 对于一个左端点 \(l\),合法的 \(r\) 具有单调性。设最小的使 \(l\) 合法的 \(r\) 为 \(R_l\),则区间 \([q_l,q_r]\) 当 \(R_{q_l} \le q_r\) …

WPF中RelayCommand的完成与使用详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

C++篇(14)二叉树进阶算法题 - 详解

C++篇(14)二叉树进阶算法题 - 详解2025-11-15 19:34 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !im…

Python 潮流周刊#127:Python 3.16 JIT 性能提升计划

本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 温馨提…

非线性序列密码结构

NFG,NCG,NCGC,CCG关于LFSR线性反馈移位寄存器和攻击方法B-M算法参考:序列密码概述部分:https://www.cnblogs.com/luminescence/p/18938331 下面内容主要围绕对LFSR进行非线性改造的四种经典方法展开,以克服LFSR序列…

2025/11/15

2025/11/15学习算法

LoongOS 上传文件

LoongOS 上传文件一般开发板预装的系统都自带有一个ssh服务器 如果默认没打开ssh服务 通过ifconfig查看ip地址 打开ssh服务systemctl start sshd 然后用MobaXterm连接ssh并登录 先在控制台选好地方 比如 cd \test 直接…

2025年目前品质好的羊毛地毯厂家推荐

文章摘要 2025年羊毛地毯行业持续向环保化、个性化方向发展,手工编织与天然材质成为市场主流趋势。本文基于行业数据与用户口碑,深度评测当前市场上品质优异的羊毛地毯生产厂家,为采购商和消费者提供权威参考。文末…

2025年市场上品质好的羊毛地毯制造企业

摘要 2025年,羊毛地毯行业持续增长,消费者对环保、设计和品质的需求日益提升。本文基于行业数据和用户评价,为您呈现市场上品质优秀的羊毛地毯制造企业排名,并提供详细分析供参考。如果您有采购或合作意向,可通过…

基础设施即服务(IaaS)全面解析:云计算的基石

本文详细介绍了基础设施即服务(IaaS)的概念、架构、工作原理、实施要点、优缺点及主要供应商。IaaS作为云计算三大服务模式之一,通过虚拟化技术为企业提供灵活、可扩展的计算资源。什么是基础设施即服务(IaaS)? 基础…

CentOS 7 通过 Packstack 安装 OpenStack Train 完整步骤

CentOS 7 通过 Packstack 安装 OpenStack Train 完整步骤该文章详细指导如何在 CentOS 7 系统上通过 Packstack 工具安装 OpenStack Train。首先介绍 OpenStack 的定义、核心特性(开源免费、资源统一管理等)与应用场…

【STM32工程开源】基于STM32的人体健康监测环境

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:【C# OOP 入门到精通】从基础概念到 MVC 实战(含 SOLID 原则与完整代码)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

tailwind自定义class问题小记

非常好的问题!您提到了两个关键点: 1. @layer components 是否合适? 是的,非常合适! pure-ipt 应该定义在 @layer components 中,因为:@layer base - 用于基础样式(如 *, body, html) @layer components - 用…

2025年主流开源AI智能体框架平台概览 - 实践

2025年主流开源AI智能体框架平台概览 - 实践2025-11-15 19:06 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bl…

threading.local()的实例化机制

threading.local() 的实例化机制threading.local() 是全局实例化一次的:它在模块/类/函数级别(通常在 __init__ 或全局作用域)创建一个单一的 local 对象实例(类型为 _thread._local)。这个对象本身是共享的(所有…

Tarjan复建

塔尖踏践他荐太监肽键抬肩台站太真。写在前面: 我 \(C_aO\) 了全™的忘干净了于是步了鱼鱼的后尘开始切黄绿DP绿蓝 \(Tarjan\) 。 哎呀呀反正肝硬化不受人待见没人看就随便写写了。强连通分量: 这个没忘干净,当年为…