gpt4 book ai didi

windbg - 将 dbg 符号文件加载到 WinDbg 中

转载 作者:行者123 更新时间:2023-12-02 00:11:19 27 4
gpt4 key购买 nike

我有一个 DLL 的 MAP 文件,我正在尝试调试它。我使用 Map2Dbg-tool 将其转换为 DBG 文件并将其放入符号路径中。

尽管发出.reload/f mydll.dll不起作用,但会发生符号加载错误。

然后我尝试使用!sym嘈杂来诊断它,它告诉我Windbg查找正确的符号路径,但仅限于PDB文件(mydll.pdb )。

有没有办法强制 Windbg 找到我的 DBG 文件?

编辑:

以下是一些进一步的信息:

Windbg 中的符号搜索路径:

> .sympath
e:\code-factory\symbols;cache*;SRV*http://msdl.microsoft.com/download/symbols

dbg 文件位于该目录中:

e:\code-factory\symbols> dir /b
cdmod.dbg
cdmod.map
...

.重新加载输出:

> .reload /f cdmod.dll

DBGHELP: e:\code-factory\symbols\cdmod.pdb - file not found
DBGHELP: e:\code-factory\symbols\dll\cdmod.pdb - file not found
DBGHELP: e:\code-factory\symbols\symbols\dll\cdmod.pdb - file not found
SYMSRV: D:\Portable\Debugging Tools for Windows\x86\sym\cdmod.pdb\BD09115E93474ABCB6152149A23F95372\cdmod.pdb not found
SYMSRV: Get File Path: /download/symbols/cdmod.pdb/BD09115E93474ABCB6152149A23F95372/cdmod.pdb


************* Symbol Loading Error Summary **************
Module name Error
cdmod PDB not found : e:\code-factory\symbols\symbols\dll\cdmod.pdb
Unable to locate the .pdb file in this location

PDB not found : cache*
Unable to locate the .pdb file in this location

The system cannot find the file specified : SRV*http://msdl.microsoft.com/download/symbols
The SYMSRV client failed to find a file in the UNC store, or there
is an invalid UNC store (an invalid path or the pingme.txt file is
not present in the root directory), or the file is present in the
symbol server exclusion list.

谢谢

最佳答案

拖放 *.dbg 文件到 exe 所在的文件夹
如果模块的 lm output 表示 imagexxxxxxx 而不是模块名称
更改 dbg 文件的名称以匹配它,例如 imagexxxxx.dbgdo .reload/f 并且windbg应该使用cv代码符号

加载您的dbg文件

预目录内容

    :\>dir /b
msgbox.exe
msgbox.map < created via ida produce map

将 map 转换为 dbg

    :\>map2dbg msgbox.exe  lucian wischik utility
Converted 7 symbols.

帖子目录内容

    :\>dir /b
msgbox.dbg
msgbox.exe
msgbox.map

在windbg中加载exe

    :\>windbg msgbox.exe    
0:000> lm
start end module name
00400000 00404000 image00400000 (deferred)

0:000> .reload /f
Reloading current modules
ERROR:Module load completed but symbols could not be loaded for image00400000

0:000> lm e
start end module name
00400000 00404000 image00400000 (no symbols)

$ rename the msgbox.dbg to image00400000.dbg

重命名dbg文件

    :\>ren msgbox.dbg image00400000.dbg        
:\>dir /b
image00400000.dbg
msgbox.exe
msgbox.map

将CV代码符号信息加载到windbg中的符号文件

0:000> .reload /f
Reloading current modules
0:000> lm e
start end module name
0:000> lm m i*
start end module name
00400000 00404000 image00400000 (codeview symbols)
C:\Documents and Settings\Admin\Desktop\nosym\image00400000.dbg

0:000> x image00400000!*
00401000 image00400000!start = <no type information>
0040101a image00400000!MessageBoxA = <no type information>
00401020 image00400000!ExitProcess = <no type information>
00403000 image00400000!Caption = <no type information>
00403019 image00400000!Text = <no type information>

0:000> da image00400000!Caption
00403000 "Iczelion's tutorial no.2"

关于windbg - 将 dbg 符号文件加载到 WinDbg 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27562203/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com