WinDbg符号文件加载

WinDbg

WinDbg符号文件加载


skyworth2010-07-02, 15:13 下午
pdb文件在d:\symcache根目录,但是始终无法加载,以下是windbg输出,为什么呢?

iptsvr.pdb\8439F7A3C92A4014BCFD948DE875CD531\iptsvr.pdb 这个尤其奇怪,符号文件在symcache目录下

0:034> .reload /f iptsvr.exe
SYMSRV: d:\symcache\iptsvr.pdb\8439F7A3C92A4014BCFD948DE875CD531\iptsvr.pdb not found
SYMSRV: http://msdl.microsoft.com/download/symbols/iptsvr.pdb/8439F7A3C92A4014BCFD948DE875CD531/iptsvr.pdb not found
DBGHELP: D:\WAYNE\bin\iptsvr.pdb - file not found
DBGHELP: d:\nchevron\pdbfiles\iptsvr.pdb - file not found
*** ERROR: Module load completed but symbols could not be loaded for D:\WAYNE\bin\iptsvr.exe
DBGHELP: iptsvr - no symbols loaded
0:034> .sympath
Symbol search path is: srv*
Expanded Symbol search path is: SRV*d:\symcache*http://msdl.microsoft.com/download/symbols
0:034> .sympath d:\symcache
DBGHELP: Symbol Search Path: d:\symcache
DBGHELP: Symbol Search Path: d:\symcache
Symbol search path is: d:\symcache
Expanded Symbol search path is: d:\symcache
0:034> .reload
Reloading current modules
................................................................
..................
DBGHELP: ntdll - public symbols
d:\symcache\ntdll.pdb\36515FB5D04345E491F672FA2E2878C02\ntdll.pdb
..
0:034> .reload /f iptsvr.exe
SYMSRV: d:\symcache\iptsvr.pdb\8439F7A3C92A4014BCFD948DE875CD531\iptsvr.pdb not found
DBGHELP: D:\WAYNE\bin\iptsvr.pdb - file not found
DBGHELP: d:\nchevron\pdbfiles\iptsvr.pdb - file not found
*** ERROR: Module load completed but symbols could not be loaded for D:\WAYNE\bin\iptsvr.exe
DBGHELP: iptsvr - no symbols loaded

Re: WinDbg符号文件加载


格蠹老雷2010-07-03, 09:51 上午

很正常啊。第一次执行.reload时,搜索的符号路径是:

SRV*d:\symcache*http://msdl.microsoft.com/download/symbols

下游符号库的路径是d:\symcache,因此WinDBG搜索这个目录时是按搜索下游符号库的方式来搜索的,即自动组件全路径:

xxx.pdb\guid+age\xxx.pdb

第二次.reload时,虽然把d:\symcache设置成了普通符号文件路径(使用.sympath),但是因为这个目录刚才做过下游符号库,其中留用标志文件(pingme.txt),所以WinDBG还是以下游符号库的方式来搜索这个目录。

建议把下游符号库和普通的符号文件目录分开,不要放在一起,以免混淆。有《软件调试》的朋友,可以读一下30.8节(特别是30.8.2)...


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
http://wangfaqiang.download.csdn.net/ 上面这个网址就可以看到所有7个的下载链接 内容简介   本书从Windows内核编程出发,全面系统地介绍了串口、键盘、磁盘、文件系统、网络等相关的Windows内核模块的编程技术,以及基于这些技术实现的密码保护、防毒引擎、文件加密、网络嗅探、网络防火墙等信息安全软件的核心组件的具体编程。主要知识重点包括:Windows串口与键盘过滤驱动、Windows虚拟存储设备与存储设备过滤驱动、Windows文件系统过滤驱动、文件系统透明加密/解密驱动、Windows各类网络驱动(包括TDI过滤驱动及三类NDIS驱动),以及最新的WDF驱动开发模型。有助于读者熟悉Windows内核驱动的体系结构,并精通信息安全类的内核编程技术。本书的大部分代码具有广泛的兼容性,适合从Windows 2000 一直到目前最新的Windows 7 Beta 版。   本书适合大专院校计算机系的学生、普通Windows程序员、Windows内核程序员、信息安全行业的程序员,以及希望了解Windows系统底层知识的计算机编程爱好者使用。阅读本书,需要读者有C语言、数据结构、操作系统和计算机网络的基础知识。 目录: 封面 -25 扉页 -24 内容简介 -23 序 -22 关于本书作者和贡献者 -20 前言 -18 阅读注意 -16 目录 -12 正文 1 第1章 内核上机指导 1 1.1 下载和使用WDK 2 1.1.1 下载安装WDK 2 1.1.2 编写第一个C文件 3 1.1.3 编译一个工程 5 1.2 安装与运行 6 1.2.1 下载一个安装工具 6 1.2.2 运行与查看输出信息 7 1.2.3 在虚拟机中运行 9 1.3 调试内核模块 9 1.3.1 下载和安装WinDbg 9 1.3.2 设置Windows XP 调试执行 10 1.3.3 设置Vista调试执行 11 1.3.4 设置VMWare的管道虚拟串口 11 1.3.5 设置Windows内核符号表 13 1.3.6 实战调试first 14 练习题 16 第2章 内核编程环境及其特殊性 17 2.1 内核编程的环境 18 2.1.1 隔离的应用程序 18 2.1.2 共享的内核空间 19 2.1.3 无处不在的内核模块 20 2.2 数据类型 21 2.2.1 基本数据类型 21 2.2.2 返回状态 22 2.2.3 字符串 23 2.3 重要的数据结构 23 2.3.1 驱动对象 23 2.3.2 设备对象 25 2.3.3 请求 26 2.4 函数调用 28 2.4.1 查阅帮助 28 2.4.2 帮助中有的几类函数 30 2.4.3 帮助中没有的函数 32 2.5 Windows的驱动开发模型 32 2.6 WDK编程中的特殊点 33 2.6.1 内核编程的主要调用源 33 2.6.2 函数的多线程安全性 34 2.6.3 代码的中断级 36 2.6.4 WDK中出现的特殊代码 37 练习题 38 第3章 串口的过滤 40 3.1 过滤的概念 41 3.1.1 设备绑定的内核API之一 41 3.1.2 设备绑定的内核API之二 43 3.1.3 生成过滤设备并绑定 43 3.1.4 从名字获得设备对象 45 3.1.5 绑定所有串口 46 3.2 获得实际数据 47 3.2.1 请求的区分 47 3.2.2 请求的结局 48 3.2.3 写请求的数据 49 3.3 完整的代码 50 3.3.1 完整的分发函数 50 3.3.2 如何动态卸载 52 3.3.3 完整的代码 53 本章的示例代码 53 练习题 54 第4章 键盘的过滤 56 4.1 技术原理 57 4.1.1 预备知识 57 4.1.2 Windows中从击键到内核 58 4.1.3 键盘硬件原理 60 4.2 键盘过滤的框架 61 4.2.1 找到所有的键盘设备 61 4.2.2 应用设备扩展 64 4.2.3 键盘过滤模块的DriverEntry 65 4.2.4 键盘过滤模块的动态加载 66 4.3 键盘过滤的请求处理 68 4.3.1 通常的处理 68 4.3.2 PNP的处理 69 4.3.3 读的处理 70 4.3.4 读完成的处理 71 4.4 从请求中打印出按键信息 72 4.4.1 从缓冲区中获得KEYBOARD_INPUT_DATA 72 4.4.2 从KEYBOARD_INPUT_DATA中得到键 73 4.4.3 从MakeCode到实际字符 74 4.5 Hook分发函数 75 4.5.1 获得类驱动对象 76 4.5.2 修改类驱动的分发函数指针 77 4.5.3 类驱动之下的端口驱动 78 4.5
各工具简介和微软官方网页 AccessChk 为了确保创建安全的环境,Windows 管理员通常需要了解特定用户或用户组对文件、目录、注册表项和 Windows 服务等资源具有哪种访问权限。AccessChk 能够通过直观的界面和输出快速回答这些问题。 AccessEnum 这一简单但强大的安全工具可以向您显示,谁可以用何种访问权限访问您系统中的目录、文件和注册表项。使用此工具可查找权限漏洞。 AdExplorer Active Directory Explorer 是一个高级的 Active Directory (AD) 查看器和编辑器。 AdInsight 一种 LDAP(轻型目录访问协议)实时监视工具,旨在对 Active Directory 客户端应用程序进行故障排除。 AdRestore 恢复已删除的 Server 2003 Active Directory 对象。 Autologon 登录过程中跳过密码屏幕。 Autoruns 查看哪些程序被配置为在系统启动和您登录时自动启动。Autoruns 还能够完整列出应用程序可以配置自动启动设置的注册表和文件位置。 BgInfo 此完全可配置程序会自动生成桌面背景,其中包含有关系统的 IP 地址、计算机名称、网络适配器及更多内容的重要信息。 BlueScreen 此屏幕保护程序不仅精确模拟“蓝屏”,而且也模拟重新启动(完成 CHKDSK),并可在 Windows NT 4、Windows 2000、Windows XP、Server 2003 和 Windows 9x 上工作。 CacheSet CacheSet 是一个允许您利用 NT 提供的功能来控制缓存管理器的工作集大小的程序。它与 NT 的所有版本都兼容。 ClockRes 查看系统时钟的分辨率,亦即计时器最大分辨率。 Contig 您是否希望迅速对您频繁使用文件进行碎片整理?使用 Contig 优化单个的文件,或者创建连续的新文件。 Coreinfo Coreinfo 是一个新的命令行实用工具,可向您显示逻辑处理器与物理处理器之间的映射、NUMA 节点和它们所处的插槽,以及分配给每个逻辑处理器的缓存。 Ctrl2cap 这是一个内核模式的驱动程序,可在键盘类驱动程序上演示键盘输入过滤,以便将 Caps-Lock 转变为控制键。在此级别过滤允许在 NT 刚好要“看到”键之前变换和隐藏键。Ctrl2cap 还显示如何使用 NtDisplayString() 打印初始化蓝屏的消息。 DebugView Sysinternals 的另一个优先程序:此程序截取设备驱动程序对 DbgPrint 的调用和 Win32 程序生成的 OutputDebugString。它允许在不使用活动的调试器的情况下,在本地计算机上或通过 Internet 查看和记录调试会话输出。 Desktops 使用这一新的实用工具可以创建最多四个虚拟桌面,使用任务栏界面或热键预览每个桌面上的内容并在这些桌面之间轻松地进行切换。 Disk2vhd Disk2vhd 可简化从物理系统到虚拟机 (p2v) 的迁移。 DiskExt 显示卷磁盘映射。 Diskmon 此实用工具会捕捉所有硬盘活动,或者在您的系统任务栏中象软件磁盘活动灯一样工作。 DiskView 图形磁盘扇区实用工具。 Disk Usage (DU) 按目录查看磁盘使用情况。 EFSDump 查看加密文件的信息。 Handle 此易用命令行实用工具将显示哪些进程打开了哪些文件,以及更多其他信息。 Hex2dec 将十六进制数字转换为十进制及反向转换。 接合点 创建 Win2K NTFS 符号链接。 LDMDump 转储逻辑磁盘管理器在磁盘上的数据库内容,其中说明了 Windows 2000 动态磁盘的分区情况。 ListDLLs 列出所有当前加载的 DLL,包括加载位置及其版本号。2.0 版将打印已加载模块的完整路径名。 LiveKd 使用 Microsoft 内核调试程序检查真实系统。 LoadOrder 查看设备加载到 WinNT/2K 系统中的顺序。 LogonSessions 列出系统中的活动登录会话。 MoveFile 使您可以安排在系统下一次重新启动时执行移动和删除命令。 NTFSInfo 用 NTFSInfo 可以查看有关 NTFS 卷的详细信息,包括主文件表 (MFT) 和 MFT 区的大小和位置,以及 NTFS 元数据文件的大小。 PageDefrag 对您的分页文件和注册表配置单元进行碎片整理。 PendMoves 枚举在系统下一次启动时所要执行的文件重命名和删除命令的列表。 PipeList 显示系统上的命名管道,包括每个管道的最大实例数和活动实例数。 PortMon 通过高级监视工具监视串行端口和并行端口的活动。它能识别所有的标准串行和并行 IOCTL,甚至可以显示部分正在发送和接收的数据。3.x 版具有强大的新 UI 增强功能和高级筛选功能。 ProcDump 这一新的命令行实用工具旨在捕获其他方式难以隔离和重现 CPU 峰值的进程转储。该工具还可用作用于创建进程转储的一般实用工具,并可以在进程具有挂起的窗口或处理的异常时监视和生成进程转储。 Process Explorer 找出进程打开了哪些文件、注册表项和其他对象以及已加载哪些 DLL 等信息。这个功能异常强大的实用工具甚至可以显示每个进程的所有者。 Process Monitor 实时监视文件系统、注册表、进程、线程和 DLL 活动。 ProcFeatures 这一小程序会报告处理器和 Windows 对“物理地址扩展”和“无执行”缓冲区溢出保护的支持情况。 PsExec 在远程系统上执行进程。 PsFile 查看远程打开的文件。 PsGetSid 显示计算机或用户的 SID。 PsInfo 获取有关系统的信息。 PsKill v1.13(2009 年 12 月 1 日) 终止本地或远程进程。 PsList 显示有关进程和线程的信息。 PsLoggedOn 显示登录到某个系统的用户。 PsLogList 转储事件日志记录。 PsPasswd 更改帐户密码。 PsService 查看和控制服务。 PsShutdown 关闭并重新启动(可选)计算机。 PsSuspend 挂起和继续进程。 PsTools PsTools 套件包括一些命令行程序,可列出本地或远程计算机上运行的进程、远程运行进程、重新启动计算机、转储事件日志,以及执行其他任务。 RegDelNull 扫描并删除包含嵌入空字符的注册表项,标准注册表编辑工具不能删除这种注册表项。 RegJump 跳至 Regedit 中指定的注册表路径。 RootkitRevealer 扫描系统以找出基于 Rootkit 的恶意软件。 SDelete 安全地覆盖敏感文件,并使用此符合 DoD 的安全删除程序清理先前删除文件所在的可用空间。 ShareEnum 扫描网络上的文件共享并查看其安全设置,以关闭安全漏洞。 ShellRunas 通过方便的 shell 上下文菜单项,作为另一个用户启动程序。 Sigcheck 转储文件版本信息并检查系统中的映像是否已进行数字签名。 Streams 显示 NTFS 备用数据流。 Strings 在二进制映像中搜索 ANSI 和 UNICODE 字符串。 Sync 将缓存数据刷新到磁盘。 TCPView 活动套接字命令行查看器。 VMMap VMMap 是进程虚拟和物理内存分析实用工具。 VolumeId 设置 FAT 或 NTFS 驱动器的卷 ID。 Whois 查看 Internet 地址的所有者。 WinObj 基本对象管理器命名空间查看器。 ZoomIt 在屏幕上进行缩放和绘图的演示实用工具。
使用WinDbg加载指定的符号文件时,可以通过以下步骤进行设置: 1. 首先,在WinDbg菜单中选择File->Symbol File Path(Ctrl+S)进行设置。 2. 在弹出的窗口中,输入你的符号路径路径的格式应符合Windows操作系统路径格式,可以输入多个路径,中间以分号间隔。例如:d:\SymbolsLocal; 3. 如果需要从Microsoft的服务器上下载符号文件,可以在符号路径中添加以下设置:srv*d:\SymbolsLocal*http://msdl.microsoft.com/download/symbols。这样,如果相关符号表在d:\SymbolsLocal目录中找不到,WinDbg会自动在Microsoft的Symbol Servers上下载。 4. 如果你想调试自己的应用程序,建议将自己应用程序的*.pdb文件路径放在符号路径的前面,这样WinDbg在查找符号时会更快。例如,在WinDbg的File->Symbol File Path对话框中输入以下文字:C:\WINDOWS\Symbols;d:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\symbols;.sympath SRV*d:\SymbolsLocal*http://msdl.microsoft.com/download/symbols。 通过以上设置,你可以让WinDbg加载指定的符号文件进行调试。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [为WinDbg设置符号文件路径](https://blog.csdn.net/cbbbc/article/details/53085376)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [使用Windbg时关于符号文件路径设置问题](https://blog.csdn.net/weixin_42395669/article/details/112803214)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值