zzage 发表于 2009-3-26 16:25

WinDBG 技巧:列出模块(DLL/EXE)里面所有的符号(symbol)

想对某个函数下断点,但是记不清楚的函数具体的名字,这个时侯可以使用x命令来列举所有的符号。

命令格式为:
x [选项] 模块名字!符号匹配表达式


这里的符号匹配表达式类似dos的文件名匹配表达式,可以用*号和?号做通配符。比如我想列出user32.dll里面所有的以GetWindowT开头的符号,使用命令

0:016>x user32!GetWindowT*
75f50f7b USER32!GetWindowTextA (struct HWND__ *, char *, int)
75f4adc5 USER32!GetWindowTextLengthW (struct HWND__ *)
75f4acc3 USER32!GetWindowTextW (struct HWND__ *, unsigned short *, int)
75f625b5 USER32!GetWindowTextLengthA (struct HWND__ *)
75f60898 USER32!GetWindowThreadProcessId (struct HWND__ *, unsigned long *)



具体的选项就不多解释了,有兴趣可以看看windbg的帮助文件。 想看看notepad里面有哪些public的函数以及变量? 用windbg打开notepad 试试x命令吧 :)

0:001> x /t /v notepad!*
页: [1]
查看完整版本: WinDBG 技巧:列出模块(DLL/EXE)里面所有的符号(symbol)