首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WinDBG会在一段时间后清除缓存的pdb文件吗?

WinDBG是一款Windows调试器工具,用于分析和调试应用程序的运行过程。在调试过程中,WinDBG会使用符号文件(pdb文件)来解析和显示源代码、变量、函数等信息。

关于WinDBG是否会在一段时间后清除缓存的pdb文件,根据我的了解,WinDBG本身并不会主动清除pdb文件的缓存。pdb文件通常是由编译器生成的,用于调试和符号解析,它们存储了与源代码相关的调试信息。

WinDBG会根据需要从缓存中加载pdb文件,以便在调试过程中使用。当你第一次调试一个应用程序时,WinDBG会尝试从程序所在的目录或符号服务器下载并缓存pdb文件。在后续的调试过程中,如果pdb文件没有发生变化,WinDBG会直接使用缓存中的文件。

然而,如果pdb文件发生了变化,比如应用程序被更新或重新编译,WinDBG可能会提示你重新加载新的pdb文件,或者你可以手动清除缓存并重新下载最新的pdb文件。

总结起来,WinDBG不会自动清除pdb文件的缓存,它会根据需要加载和使用缓存中的文件。如果你需要使用最新的pdb文件,可以手动清除缓存并重新下载。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

配置PDB符号文件服务

配置PDB符号服务器的想法 刚入职的小木,前不久刚刚解决了一次crash问题《Windbg分析程序崩溃实践》。...小木没有松懈,继续进行项目代码和Debug技术的学习,同时也思考了一个问题“产品每隔一段时间就会发布新的版本,当出现Crash问题的时候得手动去拷贝响应版本的pdb文件到本机进行调试,有没有什么方式可以实现自动化呢...这样在调试机器上的Windbg,配置产品的pdb文件服务器就好了。带着这样的问题,小木进行网络搜索,找到了问题的答案。...编辑自己的编译脚本,让其在编译完程序后,运行如下命令: windbg_installation_path>\symstore.exe add /s \\后将symbols保存到指定的server地址。这个时候在windbg中只要设置好pdb的server即可。

53320

windbg符号表问题

对于这个路径d:\symbols, 可以自定义任何位置, 最好不要用离线符号表,因为你根本就找不到对应的系统版本,而且 对于win10等仍然在更新的系统,符号表过一段时间就会有所变化,到时又要重新下载一个多...本人经过测试,同一个文件的符号表会在该目标目录下生成以hash值命名的不同文件夹,例如ntkrnlmp.pdb: ?...对于这2个文件夹,一个是本机win10的,还有一个是win7 64位系统的, 所以如果有xp的,win8的, 甚至不同更新版本的win10的这个ntkrnlmp.pdb 符号表,会同时有多个文件夹对应不同的版本..., 例如xp可以使用6.X版本的32位的windbg来进行内核调试 而win7 64位最好使用64位的 10.X版本的windbg调试....设置好符号表路径后 自动解决问题

2.2K20
  • 搭建一个自动化分析 DUMP 平台

    就是添加保存的文件,而 /r 表示 /f 的本地构建输出文件夹的内容需要递归文件夹,也就是获取文件夹里面的文件夹的内容 调用上面命令之后,将会在 C:\lindexi\Symbol 文件夹里面创建如下内容...也就是说如果你的 symstore 无法存储 PDB 文件时,请确定你的 symstore 是使用最新的 WDK 工具 此时只需要在 000Admin 文件夹所在的文件夹,如 C:\lindexi\Symbol...来分析 我推荐你在自动分析服务器上,先使用 WinDbg 手动分析一个 DUMP 用来确定你的本地环境,以及让本地缓存足够的符号文件。...-z [DUMP文件路径] -y "SRV*[本地缓存自定义符号文件夹]*[自己搭建的符号服务器]" -c "$文件]" -logo [输出的日志文件] 例如 WinDbg 是通过 WDK...DMP 文件是 F:\temp\foo.dmp 文件,而自己搭建的符号服务器以及需要做的本地符号缓存文件夹分别是 http://localhost:5000 和 F:\lindexi\AppSymCachePath

    1.7K10

    Windows下dump文件生成与分析

    大家好,又见面了,我是你们的朋友全栈君。 一 生成Dump文件 生成dump文件有三种方式:任务管理器生成,windbg抓取,源码中添加dump转储代码。需要根据实际情况选择。...1.1 任务管理器 在程序崩溃后,先不关闭程序,在任务管理器中找到该程序对应的进程。右键—>创建转储文件。 此时会在默认的目录下创建出一个dump文件。...1.2 WinDbg抓取 程序运行崩溃后,先不关闭程序,将WinDbg附加到改进程上。 执行命令:.dump –ma Test.dmp ,则会产生一个Test.dmp的转储文件。...测试时 dmp文件时本地产生的,因此VS会依据dmp文件自行找到exe,pdb和源代码的路径。因此直接点击调试,程序会出错代码行中断。...但若dmp文件是exe在另一台机器上产生的,则我们最好把exe,pdb,dmp放到同一文件夹下,必须保证pdb与出问题的exe是同一时间生成的,用VS打开dmp文件后还需要设置符号表文件路径和源代码路径

    5.1K20

    Windbg调试----Windbg入门

    这里所说的符号信息就指上述PDB文件,并且在默认Release模式编译出来的程序,会带有一个同名的PDB文件。你也可以通过配置Visual Studio的配置项来决定是否产生PDB文件: ?...,也就是之前所说的PDB文件。...文件对应的符号文件,并且缓存到C:\symbols目录下。...这里我就不再展示关闭优化后,用windbg调试打印局部变量了,大家可以自己试一试。 源码调试 习惯于VS调试的同学,可能会觉得Windbg命令调试难记难用(事实上,当你熟悉了之后可能会改变看法)。...现在我将测试源码拷贝到C:\source目录,然后在用Windbg 程序后,设置断点到测试程序的main函数入口处,然后继续执行程序: 0:000> bp testforme!

    2.6K32

    Windbg分析程序崩溃实践

    刚开始小木还有点慌张,脑子里面浮现出各种问题,这个是程序的bug吗?茫茫的代码如何寻找问题?log能看到线索吗?...当冷静下来后,小木忽然想起前几天看的两篇文章Windbg调试----Windbg入门>>和>,还没动手过呢,正好练习练习。 2....小木将程序dump拷贝到了自己的办公机器上,准备用预先安装好的Windbg64位进行分析。 3. Windbg分析 小木根据之前学习的内容,先用Windbg 加载dump。...这里补充一句,默认的产品发布采用Visual Studio Release模式发布,这个模式产品的符号信息将采用.pdb文件单独保存,保证自己的符号信息不被泄露。 3.1 符号信息加载 1....创建一个微软的symbols的缓存目录C:\windowssymbols, 一般windows程序会加载很多微软的dll,而在分析crash的时候,也需要加载微软的symbols 3.

    1.2K30

    WinDbg调试.NET程序入门

    自从来到新公司遇到性能问题后,需要想办法解决这个问题,但是一直没有合适的性能分析工具,然后找到StevenChennet 大神帮忙,他用WinDbg工具远程帮我分析了一个 dump文件,但是只看到键盘...安装好后,在开始-》Windows Kits文件夹下有 WinDbg(x86),WinDbg(x64) 两个程序的快捷方式,如果你要调试 64位的程序,就用WinDbg(x64)。...not found : e:\appserver\symbols\dll\clr.pdb e:\appserver 是我的dmp文件所在的目录,它默认是到symbols 子目录去找符号文件去了。...打开对话框,选择浏览,找到dmp文件所在目录相关的程序文件目录 E:\AppServer ,该目录下面有程序相关的 exe,pdb 文件。...刚才这个命令执行后,我们惊喜的发现,c:\symbols 目录自己创建了,并且下载了 clr.pdb等几个目录,这是再将刚才服务器上拷贝的 sos.dll, mscordacwks.dll ,放到本地机器的

    1.9K100

    Windbg调试工具使用方法

    我们平时在没有VS的情况下,可以使用带调试信息的文件,使用windbg去打断点调试,查看具体的故障细节 所需工具: Windbg 32位或者64位(exe是32即用32位windbg打开,64位同理)...带调试信息的可执行文件和对应的pdb文件 对应的代码.cpp Windows系统 步骤: 准备好windbg软件安装在客户的电脑或者要进行调试的电脑; 如果是win7可以直接运行,如果是win10,需要右键以管理员权限运行...; 拷贝代码到目标电脑任意文件夹下,这里的名字和随便命名,也可以直接放在桌面; 配置Windbg软件,包含pdb路径的配置,代码位置的配置 配置完毕后,File->Open Executable,打开以后...,启动调试 进入断点后,断点出未,代码处显示粉色 后面就是正常的调试步骤了,F10:单步调试,F11:进入函数内部; 也可以调出Local详细观察变量变化情况 也可以鼠标放在要查看的变量的上面查看具体的值...如果要进入到另外一个cpp里的Function里,只需要把它同时Open到windbg里就可以;

    72230

    WinDbg基础

    静态调试打开dmp文件后导入pdb符号表,注意时间戳是否一致检查加载成功动态调试使用WinDbg打开程序,打开程序后再附加WinDbg//栈溢出异常VS调试直接退出,调试时函数调用堆栈有问题时使用PDB...文件程序模块符号表,需要严格匹配时间戳,pdb文件名称必须和模块名称一致。...每次编译生成一次,导入后可以查看函数具体名称和行号。基本流程查看异常类型,查看异常的汇编指令及寄存器值,查看函数调用堆栈,对照源码分析,有时查看相关变量的值。....ecxr 切换到异常线程kn/kv/kp 查看当前线程的函数调用堆栈~ns 切换到n号线程,~查看所有线程...g 跳过中断lm vm 查看模块详细信息.reload 强制加载pdb文件.hh

    23530

    获取和分析Dump的几种工具简介

    Debugdiag会因此分析dump文件并产生报告。 2.WinDbg WinDbg也是微软公司的用于软件开发调试的工具,在分析Dump文件领域受到广泛的使用。...其下载地址为官方下载地址,其是一个SDK中的一个组成部分,也可以百度之进行单独下载。 WinDbg下载后应该是一个msi文件,在win7版本以上操作系统中可以直接双击安装。...安装后在开始菜单中就可以选择WinDbg使用了。 在使用WinDbg时第一步需要做的就是设置符号文件的位置。...,d:\symbols\win2k3_en; Windbg可以自动到Microsoft的服务器上下载符号表文件(.dbg或.pdb,有时DLL和EXE也会下载),只要在符合表路径里做如下设置:srvd...如果你是调试自己的应用程序的话,建议你将自己应用程序的*.pdb文件的路径放在前面这样对Windbg来说查找起来比较快。

    18K20

    Windows程序内存泄漏(Memory Leak)分析之UMDH

    而对于C++程序员来说,碰到最多的无疑是堆内存泄露:也就是通过malloc或者new从堆上申请的内存,使用完成后,并没有释放,导致程序使用的内存越来越多。...小木找到了一个分析利器UMDH: 这也是Windbg工具集中的其中一个利器,它可以在一个时间点记录程序的当前程序使用的堆内存申请的信息,过一段时间后再记录一次程序使用的堆内存申请的信息,然后比较两次的结果来找到这段时间内增加的堆内存及其关联的函数调用栈...第二步 运行测试程序MemoryLeak.exe 第三步 将你程序的symbol文件MemoryLeak.pdb拷贝到mysymbols目录下。...Files (x86)\Windows Kits\10\Debuggers\x64\umdh" -pn:MemoryLeak.exe -f:C:\umdhlog\begin.log 第五步 等程序运行一段时间后...最关键的部分就是函数调用栈了,里面指明了在memoryleaksample.cpp文件的第17行进行了内存申请。

    1.5K10

    vista开机启动项怎么设置_windows7vista with slic loader

    CPU从实模式切换为保护模式,加载内核文件和启动类型的驱动程序,然后把执行权交给内核文件的入口函数,即KiSystemStartup。...连接好电缆后,启动WinDBG调试器,二者就会建立连接,显示类似下面这样的信息: Microsoft (R) Windows Debugger Version 6.9.0003.113 X86 Copyright...观察CR0和CR3寄存器的取值,可以证明这一点: kd> r cr0 cr0=00000011 kd> r cr3 cr3=00000000 建立连接后,WinDBG会让BootMgr继续运行,BootMgr...symbols) d:\symbols\bootmgr.pdb\819F5A93195D47E3857ED729B0D341191\bootmgr.pdb 微软的符号服务器提供了BootMgr...的公开符号文件,因此只要设置好符号服务器的路径,那么WinDBG就可以自动下载合适的符号文件。

    1.4K20

    python的pdb模块

    一、介绍pdb调试环境的常用命令命令备注ll 或 l查看全部代码n执行下一行代码c执行全部代码b 行数某行打断点,程序运行到断点处会停下clear清除断点s也是一行一行执行代码,但可以进入函数内部执行s...函数名直接跳到具体某个函数内部执行r快速执行到函数最后一行p打印某一个变量的值a打印所有形参的数值q退出调试环境二、pdb调试使用1、一个py文件的调试执行py文件并进入调试 python -m pdb...文件名会出现下图现象:?...查看全部代码 开始打断点,根据自己判断打断点,格式:b 行数 再一次查看代码,断点行的代码会出现大写B? 然后运行代码,会在断点处停止,在执行一次,会在下一个断点停下?...清除断点,一是:clear清除所有断点,二是:clear 次数清除第几次打的断点?

    1.9K30

    0x000000fc (ATTEMPTED EXECUTE OF NOEXECUTE MEMORY)

    暂定各种错误码对照 //断点相关 bp + 地址 设置断点 bl 显示已经设定的断点 bu + 地址 设置断点,但是这种类型断点再下一次启动时被记录 bc 清除断点 对于断点范围,可以用...vc 生成的调试符号*.pdb windbg不认识,需要设置为c++/General/DebugInfo= C7 compatible ===== sympath + c:\nasm 添加符号搜索路径...00400000是程序的装 入地址,而53000是映像的大小,也就是程序载入内存后占用的内存大小。使用这两个数值,基本上可以搜索到程序使用的整个内存范围。...0x33 + 0x44 运行后将得到计算和 3.查看和修改数据 调试中不可避免的要查看和修改数据 查看内存: db/dw/dd/dq [Address] 字节/字/双字/四字方式查看数据...DriverEntry, 然后加载这个驱动时就可以断在驱动入口,并且这个是不需要调试符号支持的 bl 列出所有断点,L=List bc[id] 清除断点,c=Clear,id是bl查看时的断点编号

    1.3K10

    记一次w3wp占用CPU过高的解决过程(Dictionary和线程安全)

    为什么没有信心处理这个问题 原因非常简单,这个问题是间歇性的,不容易重现的,只会在项目启动时有一定的可能性会发生CPU跑满的问题。...2.后来记得有用过WinDbg解决过电脑蓝屏的问题,就猜想是否可以抓取对应w3wp进程的dump进行分析。 使用WinDbg查找线索 1.由于服务器是2008R2抓取dump就变得异常简单。 ?...2.使用WinDbg load SOS.dll后查看线程信息。 ? 发现有7个线程比较耗时,这时候心想我用的线程也是7个,这时候内心无比的激动。 切换到21线程,查看堆栈信息后发现 ?...在Dictionary的Insert时堵塞了,这时候查看其它占时很长的线程状态,也不外乎是这里堵塞了。 Dictionary中的Insert方法真的会堵塞吗? 写下如下测试代码后运行了几次 ?...修改后的代码 ? ? 观测了一段时间后,问题也确实解决了。

    1.2K50

    PDB文件:每个开发人员都必须知道的

    所有的的开发人员需要知道的最重要的事情是”PDB文件跟源代码同样的重要“, 没有PDB文件,你甚至不能debugging。...对于public build,需要symbol server存储所有的PDB,然后当用户报告错误的时候,debugger才可以自动地找到binay相应的PDB文件, visual studio 和 windbg...二 PDB文件的内容 正式开始PDB的内容,PDB不是公开的文件格式,但是Microsoft提供了API来帮助从PDB中获取数据。...在定义DEVPATH后,只需要将binary和PDB放到DEVPATH的路径,在DEVPATH下的binary相当于在GAC下。...最后开发人员需要知道的是源代码信息是如何存储在PDB文件中的。对于public builds,在运行source indexing tool后,版本控制工具将代码存储到你设置的代码cache中。

    56210

    Windows 内核驱动程序完整性校验的原理分析

    在 IDA 中加载 64 位 Windows 7 SP1 的 ntoskrnl.exe 文件并指定 pdb 文件,在 IDA View-A 页面中定位到前面获得的函数地址偏移位置 PAGE:00000001404700B0...0x1 简单分析 如果 pdb 文件正确加载的话会在 IDA View-A 页面中看到 IDA 已正确识别该函数的名称符号。通过 IDA 获得初步的 C 代码,对其进行一些修正后得到下述代码。...后经过计算得知,相加后的值在此处只有在一种情况才会小于 0x7FFFFFFFFF 值。...具体可以参考前面部分的内容,代码的注释已经写清楚。 具体的验证可以通过 Windbg 跟一下。...现在回想在编译链接驱动程序的时候,在 sources 文件中可选添加的 LINKER_FLAGS=/INTEGRITYCHECK 链接标记,其实就是给生成的 sys 文件的 PE 文件头中对应的 Flags

    1.2K10

    为异常处理做准备,熟悉一下WinDbg工具

    第一个,调试源文件,一般用不到,每个编译器都在带调试器,自己用自己的就好 第二个,打开一个可执行文件,很常用 第三个,附加一个进程,这个和OD很类似,当程序打开之后可以附加 现在我们用第二个,打开一个我们的可执行程序...,将看不到WinDbg翻译出来的函数了 这个是OD做不到的,你调用什么函数,WinDbg都能知道,归功于符号路径的设置 CTRL + S 打开符号路径设置,或者在菜单点击 ?...三丶WinDbg常用的命令 WinDbg常用的命令很多.具体可以搜索MSDN这里只简单列举一下 1.断点指令 bp 命令,设置断点 bm 命令,设置执行符号断点,可以多个符号下段点 ba  命令,设置内存访问断点...bl   命令,查看断点列表 bc *  清除所有断点. 2.反汇编和汇编指令 反汇编: U 指令,向下反汇编 UB指令,向上反汇编 UF 反汇编整个函数 汇编:   a指令,可以写入汇编代码 3.栈分析指令...等等 具体可以参考MSDN的用法,或者WinDbg参考手册,将会在课堂附件中提供下载 ?

    1.2K110
    领券