C++(Qt)软件调试---无法校验pdb时间戳(23)

C++(Qt)软件调试---无法校验pdb时间戳(23)


### 文章目录

  • [C++(Qt)软件调试---无法校验pdb时间戳(23)](#文章目录 C++(Qt)软件调试---无法校验pdb时间戳(23) @[toc] 1、概述🐜 2、前期准备🪲 3、开始分析🦧 4、相关地址🐐)
  • [@[toc]](#文章目录 C++(Qt)软件调试---无法校验pdb时间戳(23) @[toc] 1、概述🐜 2、前期准备🪲 3、开始分析🦧 4、相关地址🐐)
  • [1、概述🐜](#文章目录 C++(Qt)软件调试---无法校验pdb时间戳(23) @[toc] 1、概述🐜 2、前期准备🪲 3、开始分析🦧 4、相关地址🐐)
  • [2、前期准备🪲](#文章目录 C++(Qt)软件调试---无法校验pdb时间戳(23) @[toc] 1、概述🐜 2、前期准备🪲 3、开始分析🦧 4、相关地址🐐)
  • [3、开始分析🦧](#文章目录 C++(Qt)软件调试---无法校验pdb时间戳(23) @[toc] 1、概述🐜 2、前期准备🪲 3、开始分析🦧 4、相关地址🐐)
  • [4、相关地址🐐](#文章目录 C++(Qt)软件调试---无法校验pdb时间戳(23) @[toc] 1、概述🐜 2、前期准备🪲 3、开始分析🦧 4、相关地址🐐)
更多精彩内容
👉内容导航 👈
👉C++软件调试 👈

1、概述🐜

windows中使用windbg调试程序时需要使用到源代码、可执行程序、pdb符号表;

而加载pdb符号表时有可能会失败,常见原因有两种:

  • 名称错误:pdb符号表和可执行程序名称应该是相同的,如果随意改动会加载失败;
  • 时间戳错误:加载pdb符号表时会校验pdb与exe的生成时间戳是否相同,如果不同也会失败,报错WARNING: Unable to verify timestamp for TestCrash_1.1.0.exe

本文中主要讲解pdb时间戳校验失败如何加载。

演示环境:

  • 系统:

    • Windows11
  • 开发环境:

    • Qt
  • 编译器:

    • msvc2022-64

2、前期准备🪲

  • 演示代码
  • 使用debug模式编译第一次,将生成的pdb符号表复制到其他地方;
  • 使用debug模式编译第二次,将第一次生成的pdb符号表替换第二次生成的符号表,这样pdb和exe时间就不会相同了。
  • 运行TestCrash程序,生成dmp文件。

3、开始分析🦧

  1. 将生成的pdb文件拖进windbg中;

  2. 使用.sympath+ E:\test\bin64命令设置pdb符号表路径;

  3. 使用lm命令查看pdb符号表加载情况,如下图所示未加载;

  4. 使用.reload /f Test*命令加载TestCrash_1.1.0.exe的符号表,显示信息如下,加载失败,校验时间戳错误;

  5. 打开Call Stack窗口;

  6. 输入.excr命令显示与当前异常关联的上下文记录,发现因为没有加载符号表,无法定位异常位置;

  7. 方法一: 使用.symopt+ 0x40 命令++当尝试匹配符号时,此符号选项可降低符号处理程序的挑剔度++。官方文档地址:

  8. 方法二: 使用 .reload /i TestCrash_1.1.0.exe命令,其中/i忽略 .pdb 文件版本中的不匹配情况。TestCrash_1.1.0.exe为需要加载的可执行程序名称。然后再次运行.excr就可以进行分析了,官方文档地址:

4、相关地址🐐

相关推荐
D_evil__2 小时前
【Effective Modern C++】第二章 auto:6. 当auto推导的类型不符合要求时,使用显式类型初始化习惯用法
c++
钱彬 (Qian Bin)2 小时前
项目实践17—全球证件智能识别系统(开发基于LabelMe标注的可视化审核接口)
qt·fastapi·全球证件识别
哈哈不让取名字3 小时前
基于C++的爬虫框架
开发语言·c++·算法
花间相见3 小时前
【JAVA开发】—— Nginx服务器
java·开发语言·nginx
扶苏-su3 小时前
Java---Properties 类
java·开发语言
一条咸鱼_SaltyFish5 小时前
远程鉴权中心设计:HTTP 与 gRPC 的技术决策与实践
开发语言·网络·网络协议·程序人生·http·开源软件·个人开发
我即将远走丶或许也能高飞5 小时前
vuex 和 pinia 的学习使用
开发语言·前端·javascript
沐知全栈开发5 小时前
SQL LEN() 函数详解
开发语言
剑锋所指,所向披靡!5 小时前
C++之类模版
java·jvm·c++
钟离墨笺5 小时前
Go语言--2go基础-->基本数据类型
开发语言·前端·后端·golang