1、安装WinDbgPreview在Microsoft Store直接搜索windbg就可以下载 。
2、配置符号服务器2.1 符号符号是方便调试程序的文件,通常是pdb文件 。一个模块(可执行程序 , 动态链接库)对应一个pdb文件 。不同的windows版本中的文件不同(比如说kernel32),版本不同pdb符号文件也不同,因此要从微软提供的符号服务器获取本机对应的符号 。
但是要在本地建立一个文件夹作为缓存来存放符号文件 , 以便下次使用时直接从本地获取 。
2.2 配置【WinDbg Preview安装以及符号表配置】1、可以在环境变量设置_NT_SYSBOL_PATH为 srv*C:\Symbols*http://msdl.microsoft.com/download/symbols
其中c:\Symbols就是自己本机上符号的缓存目录,可以自己设置 。后面网址就是微软符号服务器了
但是,我是用这种方法时,visual studio调试时会自动从这个网站加载符号,非常浪费时间,令人崩溃 。而且好像强制没法关闭,所以根据自己情况自行选择 。
2、不设置环境变量了 , 直接进入windbg,file->setting->debugging settings把symbol path填入也可以 。
文章插图
如图所示 。
3、加载一个可执行文件在在命令行输入.sympath命令也可以添加 。这一个方法自行搜索 。
3、基本使用3.1 加载文件直接把可执行文件拖进去就可以,或者file->lanch executable加载一个文件 。会自动识别是32位程序还是64位程序 。这里可以直接打开记事本文件notepad.exe做测试 。
文章插图
在命令窗口输入lm,显示notepad.exe用到的模块以及符号表对应情况 。如图,deferred对应的模块没有加载,pdb带路径的就是加载了符号表 。kernel32符号表已经加载,但是user32符号表没有加载 。可以用ld kernel32加载符号文件 。
文章插图
3.2 常用命令r 查看寄存器t 单步执行,遇到call跟进去g 运行bp (address | function),在地址下断点,比如,bp 0x401000,或者 bp kernel32!CreateFileW
推荐阅读
- Qt Designer、PyUIC、PyRcc PyCharm安装PyQt5及其工具详细教程
- CentOS 7 下安装 MySQL 8.x
- win11安卓应用怎么安装_win11安卓应用安装方法
- 中国军棋怎么玩(中国军棋免费下载安装)
- 轻量级Web框架Flask——Web表单
- [CG从零开始] 3. 安装 pyassimp 库加载模型文件
- 附Anaconda安装包 Anaconda安装和卸载+虚拟环境Tensorflow安装以及末尾问题大全,这一篇就够了!!!
- k3s部署全过程
- Ubuntu22.04 安装配置VNC Server
- winget 使用 Windows 包管理器 安装 .Net