警告：可用的文件描述符数量不够（256）。如果程序有太多的线程，
那么您就可能需要设置 mt_scalable 选项，或者增加文件描述符数量
硬性限制。参见 mt_scalable 下的“help dbxenv”。
#       adb.help 1.1 99/02/01
#
# Copyright 02/01/99 Sun Microsystems, Inc. All Rights Reserved
#
# Help file for adb.so: `help adb'
#
adb                     # 进入 adb 模式
adb <cmd>               # 执行一个 adb 命令

在 adb 模式下，变量 ($foo) 替换功能被禁用。
在 adb 模式下，支持命令行编辑功能和历史记录功能。

$<otherhead>
快速启动摘要：

    $c                  # 显示调用堆栈
    $C                  # 显示冗余调用堆栈

    <sym>:b             # 在符号处设置断点
    :d                  # 删除 $pc 处的所有断点

    :r                  # 运行；从头开始执行
    :c                  # 继续执行
    :s                  # 单步执行一个指令
    :e                  # 单步，在调用的函数中不停止

    $r                  # 显示寄存器
    $b                  # 列出断点

    <sym>?X             # 以十六进制字（4 个字节）的形式显示变量值

    $q                  # 退出（退出 adb 模式；不退出 dbx）
    @<dbxcmd>           # 执行 dbx 命令，返回 adb 模式

$<otherhead>
用法：
$<p indent>
      <objfile> 表示磁盘上的可执行映像
        活动进程或核心文件。

$<p indent>
        符号“.”表示当前位置。

$<p indent>
        命令由三个可选部分组成，各部分之间用分号或换行符分隔： 

$<ex>
                [ <address> ]  [ , <count> ]  [ <command> ]  [ ; ]
$<\ex>

$<p indent>
        <address> 和 <count> 是表达式（参见下面内容）。
        缺省 <address> 为“.”；缺省 <count> 为 1。

$<p indent>
        在下文中，左边星号（*）表示该命令与“adb”程序显著不同。

$<otherhead>
数值：
$<p indent>
        当前输入基数（参见“$d”）确定以 0 到 9 之间数字开头的数的解释。

*       与 adb 程序不同，该命令不接受以字母开头的十六进制数；
$<newline>
*       使用“0x...”。

$<p indent>
        不管当前输入基数如何，以“0o”或“0O”开头的数被看作八进制，
        以“0t”或“0T”开头的数被看作十进制，以“0x”或“0X”
        开头的数被看作十六进制。

$<otherhead>
表示：
        .       当前位置
        +       “.”按当前增量增加
        ^       “.”按当前增量减少
        &       最近输入的地址

        n       一个整数常量
        n.n     一个浮点数
        'c'     ASCII 常量（1 到 4 个字符） 
        <name   <name> 的值，它可以是变量名或寄存器名
        sym     一个符号

        (exp)   圆括号能用于分组

        *exp    <corefile> 中 <exp> 的内容
        %exp    <objfile> 中 <exp> 的内容

        -exp    整数取负
        ~exp    按位补足
        #exp    逻辑非

        e+e     整数加
        e-e     整数减
        e*e     整数乘
        e%e     整数除
        e&e     按位与
        e|e     按位或
        e1#e2   <e1> 保留 <e2> 位数

#$<otherhead>
#变量：
#       <0      已打印最后一个值
#       <1      指令源的最后一个偏移部分
#       <2      上一个小于 1 的值
#       <9      最后一个 $< 或 $<< 命令的计数
#       <b      数据段的基地址
#       <d      数据段大小
#       <e      入口点
#       <m      “幻数”
#       <t      文本段大小

$<otherhead>
命令：
        ?       输出位置从 <objfile> 中的 <addr> 开始
        /       输出位置从 <corefile> 中的 <addr> 开始
        =       输出 <addr> 的值
        :       管理一个子进程
        $       状态，其它操作
        >       给变量或寄存器赋值
#       !       shell escape
        <RET>   重复前一个命令，<count> 为 1，增量为“.”
*       @       执行 dbx 样式的命令

$<otherhead>
?、/ 和 = 的修饰符：
$<p indent>
     以下格式修饰符适用于命令 ?、/ 和 =。要指定一个格式，在命令后面加上
     重复数(可选)，然后加上所需的格式字母：

$<ex>
          {?,/,=} [ [ r ] f ... ] ]
$<\ex>


$<p indent>
     其中 <r> 表示重复数，<f> 表示下列格式字母之一：

     o              （“.”增量：2）以八进制输出 2 个字节
     O              (4) 以八进制输出 4 个字节
     G              (8) 以八进制输出 8 个字节
     q              (2) 以带符号八进制输出
     Q              (4) 以带符号 long 八进制输出
     g              (8) 以带符号 long long 八进制输出
     d              (2) 以十进制输出
     D              (4) 以 long 十进制输出
     e              (8) 以 long long 十进制输出
     x              (2) 以十六进制输出 2 个字节
     X              (4) 以十六进制输出 4 个字节
     J              (8) 以十六进制输出 8 个字节
     u              (2) 以无符号十进制数输出
     U              (4) 以无符号 long 十进制输出
     E              (8) 以无符号 long long 十进制输出
     f              (4) 输出单精度浮点数
     F              (8) 输出双精度浮点数
     b              (1) 以八进制输出寻址字节
     c              (1) 输出寻址字符
     C              (1) 使用 ^ 换码约定输出寻址字符
     s              (n) 输出寻址字符串
     S              (n) 使用 ^ 换码约定输出字符串。
     Y              (4) 以日期格式输出 4 个字节
     i              （SPARC 系统中为 4；x86 系统中为 n）以机器指令的形式输出
     a              (0) 以符号形式输出“.”的值
     p              (4) 以符号形式输出寻址值
     t              (0) 跳至下一个适当的制表位
     r              (0) 输出一个空格
     n              (0) 换行
     "..."          (0) 输出封闭字符串
     ^              (0) 递减“.”
     +              (0) 递增“.”
     -              (0) 按 1 递增“.”

\: 修饰符
     b              设置断点
     b <cmds>       设置断点，当到达断点上时执行命令
     r              用以前的参数以子进程方式运行 <objfile>
#    r <args>       将 <objfile> 作为使用新参数的字进程运行
     d              在 <addr> 处删除断点
     z              删除所有断点
*    D              删除所有断点
     c              继续运行子进程
     s              单步运行子进程
*    e              单步运行，但在被调用函数中不停止
     i              将 <addr> 指定的信号添到直接传递给子进程的信号列表
                    中 (“ignore”)
*    I              将所有信号添到直接传递给子进程的信号列表
                    中 (“ignore all”)
     t              将 <addr> 指定的信号从隐式传递给子进程的信号列表中
                    删除 (“catch”)
*    T              将所有信号从隐式传递给子进程的信号列表中删除 (“catch all”)
     k              如果有子进程，则终止当前子进程
     A              绑定到一个已存在的进程 id。（例如，Qt1234:A 将绑定到
                    十进制进程编号 1234。）
     R              释放前面绑定的进程

\$ 修饰符
     <filename      从文件 <filename> 中读取命令
     <<filename     与 < 类似，但可以用于读取文件中的命令，而不必关闭该文件
     >filename      向文件 filename 追加输出，如果不存在则创建。
#     l              x86: 显示当前轻量进程
#                    (lwp) ID.
#     L              x86: 显示所有 lwp ID。
#     P              指定 adb 提示字符串。
     ?              显示进程 ID、停止子进程的信号和寄存器。
     r              输出通用寄存器的名称和内容，以及按 <pc 寻址的指令
#     x or X         x86: 打印浮点寄存器的内容。$x  和 $X 接受用于确定浮点
#                       寄存器打印精度的“计数”；缺省值为 25。使用 $X 将比
#                    $x 产生更多的冗余输出。
#     x              SPARC:   打印浮点寄存器 0 至 15 的名称和内容。
#     X              SPARC:   打印浮点寄存器 16 至 31 的名称和内容。
     b              输出所有断点及其关联的计数和命令
*    c              C 堆栈回溯，无参数、文件名或行号
*    C              与 $c 相同，但此外还显示每个帧的参数、文件名和行号
     d              设置要寻址的缺省基数并报告新值。
                    注意：<addr> 是以当前基数解释。因此“10$d”决不会
                    改变缺省基数。
#     e              打印外部变量的名称和值。
#     w              设置地址输出的页宽（缺省值为 80）。
#     s              设置地址的符号匹配限制（缺省值为 255）。
     o              所有整数输入均被当作八进制数 
*    q              退出 adb 模式（不退出 dbx）
    *    V              以十六进制输出所有(用户)变量的值 
*    V              以十六进制输出所有的用户变量的值
*    m              输出地址图（具有低位和高位文本地址的装入对象列表）
#     f              Print a list of known source filenames.
     i              显示哪些以最小的干扰传递给子进程的信号
*    I              列出所有信号并指出哪些信号将隐式传递给子进程（flag==1）
#     W              即使已给定 -w 命令行参数，也仍然重新打开 objectfile 和
#                    以便写入。
