首页
学习
活动
专区
工具
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文件服务器就好了。带着这样问题,小木进行网络搜索,找到了问题答案。...编辑自己编译脚本,让其在编译完程序,运行如下命令: \symstore.exe add /s \\<Symbol_Machine Hostname...上述symbols可以做到,在产品每次发布将symbols保存到指定server地址。这个时候在windbg中只要设置好pdbserver即可。

45120

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调试....设置好符号表路径 自动解决问题

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.5K10

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文件还需要设置符号表文件路径和源代码路径

3.4K20

Windbg调试----Windbg入门

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

2.2K32

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.8K100

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里就可以;

63130

Windbg分析程序崩溃实践

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

1.1K30

WinDbg基础

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

15730

获取和分析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来说查找起来比较快。

14.6K20

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.2K10

pythonpdb模块

一、介绍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.7K30

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.3K20

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.2K10

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

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

1.1K50

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中。

49110

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

95910

为异常处理做准备,熟悉一下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.1K110

Python也有pdb

pdb带一个命令作为参数,还可进一步看到相应使用说明: (Pdb) h h h(elp) Without argument, print the list of available...相信我,help其实才是pdb里面最重要命令。别的什么都可以记不住,但是help一定要记住。在以结果为导向职场生活中也是一样,遇到问题要及时求助哟~ l(ist) 打印当前文件源代码。...可以在pdb环境下,执行一般Python语句。通常我们可以用来改变变量值——要不怎么说调试器可以让你成为上帝呢?还有比这更为所欲为? 一般的话这个!...:17 cl(ear) 有三种使用方式:1)类似设置断点时,清除特定文件特定行断点;2)将要清除断点号列出来,以空格分隔;3)不带参数,清除所有断点。...下面一一演示: 1)类似设置断点时,清除特定文件特定行断点 (Pdb) b Num Type Disp Enb Where 1 breakpoint keep yes

71010
领券