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

根据参数的值将文件存储在符号存储中。 路径 指定符号存储的目录路径。 File1File2 用于创建增量值,而增量值又用于确定要存储的文件。

storeadd 文件存储

将指定文件添加到指定的符号存储区。 存储 应是符号存储的根路径。

下表列出了应用于真实符号和虚构符号的 DBH 命令。

命令 效果

undec Name

显示附加到指定符号名称的修饰的含义。 名称 可以是任何字符串;它不需要对应于当前加载的符号。 如果 Name 包含C++修饰,则会显示这些修饰的含义。

添加名称地址大小

将指定的虚构符号添加到 DBH 中加载的符号列表中。 名称指定要添加的符号的名称,Address 指定要添加的十六进制地址,并指定其十六进制大小(以字节为单位)。 这在后面的 DBH 命令中被视为任何其他符号,直到 DBH 会话以退出或卸载结束,或者直到使用 del 删除虚构符号为止。不会更改实际的目标符号文件。

del Name

del Address

删除之前使用 add 命令添加的虚构符号。 可以按名称或地址指定符号。 这不能用于删除实际符号。