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 等待新命令。