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