adb 调试程序入门

这部分说明如何从大量文件启动 adb 调试程序、如何使用 adb 提示符、如何从 adb 程序内部使用 shell 命令,以及如何停止 adb 程序。

对程序文件启动 adb

您可以在没有文件名的情况下启动 adb 调试程序。 在这种情况下,adb 程序在当前工作目录中搜索缺省 a.out 文件,并准备对其进行调试。 因此,命令:

adb

与输入以下命令相同:

adb a.out

使用 a.out 文件启动 adb 程序,并等待命令。 如果 a.out 文件不存在,那么 adb 程序不需要文件即可启动,且不显示错误消息。

对核心映像文件启动 adb

您可以使用 adb 调试程序来检查导致不可恢复系统错误的程序的核心映像文件。 核心映像文件维护 CPU、寄存器、堆栈以及程序内存区域在发生错误时其内容的记录。 因此,核心映像文件提供确定错误原因的方法。

要使用对应程序检查核心映像文件,必须指定核心和程序文件的名称。 命令行的格式为:

adb ProgramFile CoreFile

其中,ProgramFile 是导致错误的程序的文件名,而 CoreFile 是系统生成的核心映像文件的文件名。 adb 而后使用这两个文件的信息提供对命令的响应。

如果不指定核心映像文件的文件名,那么 adb 程序在当前工作目录中搜索名为 core 的缺省核心文件。 如果找到此类文件,那么 adb 程序确定该核心文件是否属于 ProgramFile。 如果是,那么 adb 程序使用它。 否则,adb 程序通过给定适当的错误消息废弃该核心文件。

注意: adb命令不能用于检查 64 位对象和AIX 4.3核心格式。 adb 仍适用于AIX 4.3 之前的核心格式。 在 AIX 4.3上,用户可以使用 smitty 生成内核以生成AIX 4.3 样式的核心转储。

对数据文件启动 adb

adb 程序提供了查看格式和结构各异的文件内容的方法。 可以使用 adb 程序来检查数据文件,方法是提供数据文件的名称来代替程序或核心文件。 例如,要检查名为 outdata 的数据文件,请输入:

adb outdata

adb 程序打开一个名为outdata让你检查它的内容 如果该文件包含非 ASCII 数据,那么此检查文件的方法是很有用的。 指定非 ASCII 数据文件而不是程序文件的名称时,adb 命令可显示警告。 当数据文件的内容与程序文件类似时,这种现象经常发生。 同核心文件一样,数据文件无法被执行。

使用写选项来启动 adb

如果使用 adb 命令的 -w 标志打开程序或数据文件,那么可以对该文件进行更改和更正。 例如,命令:

adb -w sample

打开程序文件sample用于写作。 然后可使用 adb 命令检查并修改此文件。 如果给定文件不存在,那么 -w 标记将使 adb 程序创建它。 此选项也允许您在运行给定程序后直接写到内存。

使用提示

启动 adb 程序后,可使用 $P 子命令重新定义提示符。

要将 [adb:scat]>> 提示符更改为 Enter a debug command -->,请输入:

$P"Enter a debug command--->"

在从 adb 命令行重新定义新提示符时不需要引号。

从 adb 程序内部使用 shell 命令

可通过使用 adb 转义命令 (!)(惊叹号)在不退出 adb 程序的情况下运行 shell 命令。 转义命令的格式为:

! 命令

在此格式中,Command 为想要运行的 shell 命令。 必须将任何所需参数同命令一起提供。 adb 程序将此命令传送给调用它的系统 shell。 命令完成时,该 shell 返回对 adb 程序的控制。 例如:要显示日期,请输入以下命令:

! date

系统显示日期并恢复对 adb 程序的控制。

退出 adb 调试程序

可使用 $q$Q 子命令停止 adb 程序,并返回到系统 shell。 还可输入 Ctrl-D 键序列停止 adb 程序。 无法通过按下“Interrupt”或“Quit”键停止 adb 程序。 这些键使 adb 等待新命令。