DBH 命令
在 DBH 命令行中,可以使用各种命令来分析符号和符号文件。
下表列出了控制 DBH 选项和执行其他基本任务的命令。
命令 | 效果 |
---|---|
verbose [on|off] |
打开或关闭详细模式。 在没有参数的情况下,显示当前详细模式设置。 |
同情 [路径] |
设置符号搜索路径。 如果没有参数,则显示当前符号搜索路径。 |
symopt选项 symopt +Options symopt -Options symopt |
设置符号选项。 如果没有 + 或 -, 则 Options 的值将替换当前符号选项。 如果使用 + 或 - ,则 Options 指定要添加或删除的选项;或 - 之前+必须有一个空格,但后面没有空格。 如果没有参数,则显示当前符号选项。 启动 DBH 时,所有符号选项的默认值0x10C13。 有关可用选项的列表,请参阅 设置符号选项。 |
help |
显示 DBH 命令的帮助文本。 |
退出 |
退出 DBH 程序。 |
下表列出了加载、卸载和调整目标模块的基数的命令。 如果 DBH 是通过在命令行上指定进程 ID 来启动的,则无法使用这些命令。
命令 | 效果 |
---|---|
加载文件 |
加载指定的模块。 文件 应指定可执行文件或符号文件的路径、文件名和文件扩展名。 |
卸载 |
卸载当前模块。 |
基址 |
将默认基址设置为指定值。 所有符号地址都将相对于此基址确定。 |
下表列出了搜索文件和显示目录信息的命令。
命令 | 效果 |
---|---|
findexe文件路径 |
使用 FindExecutableImage 例程在指定路径中找到指定的可执行文件。 |
finddbg文件路径 |
在指定路径中找到指定的 .dbg 文件。 包括 .dbg 扩展是可选的。 |
dir文件路径 |
使用 EnumDirTree 例程找到指定路径或此路径下的任何子目录中的指定文件。 |
srchtree路径文件 |
使用 SearchTreeForFile 例程查找指定路径或此路径下的任何子目录中的指定文件。 此命令与 dir 相同,只不过参数是反转的。 |
ffpath文件 |
在当前符号路径中查找指定的文件。 |
下表列出了分析模块列表和控制默认模块的命令。 默认模块及其基址显示在 DBH 提示符上。
命令 | 效果 |
---|---|
modAddress |
将默认模块更改为具有指定基址的模块。 |
refresh |
刷新模块列表。 |
omap |
显示模块 OMAP 结构。 |
epmodPID |
枚举为指定进程加载的所有模块。 PID 指定所需进程的进程 ID。 |
info |
显示有关当前加载的模块的信息。 |
objMask |
列出与与指定模式匹配的默认模块关联的所有对象文件。 掩码 可能包含各种通配符和说明符;有关详细信息 ,请参阅字符串通配符语法 。 |
srcMask |
列出与与指定模式匹配的默认模块关联的所有源文件。 掩码 可能包含各种通配符和说明符;有关详细信息 ,请参阅字符串通配符语法 。 |
enummod |
枚举所有加载的模块。 始终至少有一个模块,除非 DBH 在没有目标的情况下运行,在这种情况下没有目标。 |
下表列出了用于显示和搜索符号的命令。
命令 | 效果 |
---|---|
枚举模块!象征 |
枚举与指定模块和符号匹配的所有符号。 Module 指定要在没有文件扩展名) 的情况下搜索 (的模块。 符号 指定符号必须包含的模式。 模块和符号都可能包含各种通配符和说明符;有关详细信息,请参阅字符串通配符语法。 |
enumaddrAddress |
枚举与指定地址关联的所有符号。 |
addrAddress |
显示有关与指定地址关联的符号的详细信息。 |
name [Module!]象征 |
显示有关指定符号的详细信息。 可以包含可选的 模块 说明符。 不应使用通配符,因为如果多个符号与模式匹配, 名称 仅显示其中第一个符号。 |
下一个 [模块!]象征 下一个地址 |
显示有关指定符号或地址后下一个符号的详细信息。 如果符号由名称指定,则可以包含可选的 模块 说明符,但不应使用通配符。 |
上一页 [模块!]象征 上一个地址 |
显示有关指定符号或地址之前的第一个符号的详细信息。 如果符号按名称指定,则可以包含可选的 模块 说明符,但不应使用通配符。 |
lineFile#LineNum |
显示与指定源行关联的二进制指令的十六进制地址,以及与此行关联的任何符号。 此外,将当前行号设置为等于指定的行号。 File 指定源文件的名称, LineNum 指定该文件中的行号;这些应用数字符号分隔 ( # ) 。 |
srclinesFile LineNum |
显示与指定源行关联的对象文件,以及与此行关联的二进制指令的十六进制地址。 不更改当前行号。 File 指定源文件的名称, LineNum 指定该文件中的行号;这些应用空格分隔。 |
laddr地址 |
显示源文件和与位于指定地址的符号对应的行号。 |
亚麻ext |
递增当前行号,并显示有关新行号的信息。 |
lineprev |
递减当前行号,并显示有关新行号的信息。 |
locals函数 [Mask] |
显示指定函数中包含的所有局部变量。 如果包含 Mask ,则仅显示与指定模式匹配的局部变量;有关详细信息 ,请参阅字符串通配符语法 。 |
typeTypeName |
显示有关指定数据类型的详细信息。 TypeName 指定数据类型的名称 (例如 WSTRING) 。 如果没有类型名称与此值匹配,将显示任何匹配符号。 与大多数 DBH 命令参数不同, TypeName 区分大小写。 |
elines [Source [Obj]] |
枚举与指定源掩码和对象掩码匹配的所有源行。 Source 指定源文件的名称,包括绝对路径和文件扩展名。 Obj 指定对象文件的名称,包括相对路径和文件扩展名。 Source 和 Obj 都可能包含各种通配符和说明符;有关详细信息,请参阅字符串通配符语法。 如果省略参数,则等效于使用星号 () 通配符。 如果不希望指定路径信息,请在文件名前面加上 </strong> 以指示通配符路径。 |
index值 |
显示有关具有指定索引值的符号的详细信息。 |
范围地址 scope [Module!]象征 |
显示有关指定符号的父级的详细信息。 符号可以按地址或名称指定。 |
srch [mask=Symbol] [index=Index] [tag=Tag] [addr=Address] [globals] |
搜索与指定掩码匹配的所有符号。 符号 指定符号名称。 它不应包含模块名称,但可能包含通配符和说明符;有关详细信息 ,请参阅字符串通配符语法 。 Index 指定要用作搜索父级的符号的十六进制地址。 标记 指定符号类型分类器 (符号Xxx) 必须与符号匹配的值的十六进制符号类型。 Address 指定符号的地址。 如果包含 全局 符号,则仅显示全局符号。 |
uw地址 |
在指定地址处显示函数的展开信息。 |
dtag |
显示符号类型分类器 (SymTagXxx) 值。 |
etypes |
枚举所有数据类型。 |
dump |
显示目标文件中所有符号信息的完整列表。 |
下表列出了与符号服务器和符号存储相关的命令。
命令 | 效果 |
---|---|
home [Path] |
设置 SymSrv 和 SrcSrv 用于默认下游存储的主目录。 如果符号路径包含对使用默认下游存储的符号服务器的引用,则主目录的 符号 子目录将用于下游存储。 如果没有参数, home 会显示当前主目录。 |
srvpath路径 |
测试指定路径是否为符号存储的路径。 |
srvind文件 |
查找对应于指定文件的符号服务器索引。 符号服务器索引是基于文件内容的唯一值,无论它是否实际已添加到任何符号存储。 文件 应指定所需文件的文件名和绝对路径。 |
fii文件 |
显示指定二进制文件及其关联文件的符号服务器索引。 |
getfile文件索引 |
显示具有指定名称和符号服务器索引的文件。 File 指定所需文件的名称;这不应包括其路径。 Index 指定所需文件的符号服务器索引。 DBH 使用 SymFindFileInPath 例程在当前符号路径下的树中搜索具有此名称和此索引的文件。 |
supPath File1 File2 |
根据参数的值将文件存储在符号存储中。 Path 指定符号存储的目录路径。 File1 和 File2 用于创建增量值,后者又用于确定要存储的文件。 |
storeadd文件存储 |
将指定文件添加到指定的符号存储区。 存储 应该是符号存储的根路径。 |
下表列出了应用于实际符号和虚符号的 DBH 命令。
命令 | 效果 |
---|---|
undecName |
显示附加到指定符号名称的修饰的含义。 名称 可以是任何字符串;它不需要对应于当前加载的符号。 如果 Name 包含 C++ 修饰,则显示这些修饰的含义。 |
添加名称地址大小 |
将指定的虚符号添加到 DBH 中加载的符号列表。 Name 指定要添加的符号的名称, Address 指定其十六进制地址, 并调整 其十六进制大小(以字节为单位)。 这与后续 DBH 命令中的任何其他符号一样处理,直到 DBH 会话以 退出 或 卸载结束,或者直到使用 del 删除虚符号为止。不会更改实际目标符号文件。 |
delName delAddress |
删除之前使用 add 命令添加的虚符号。 可以按名称或地址指定符号。 这不能用于删除真实符号。 |
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈