天天看点

Hexagon GDB Debugger介绍(3)

Hexagon GDB Debugger介绍(3)

    • 2.4 调试器选项
      • 2.4.1 选择文件
      • 2.4.2 选择模式

2.4 调试器选项

调试器选项用于从命令行控制调试功能。

当调试器启动时,它读取除选项之外的任何参数作为指定可执行文件。 这与参数是由 -se 选项指定的情况相同。

许多选项都定义了备用缩写开关以方便使用。 这些长格式和短格式(作为替代在下面列出)在功能上是等效的。

标准选项名称也可以被截断,只要您指定足够的选项名称来唯一标识该选项。

注意:
选项名称可以带有前缀“-”或“--”。
           

这些选项由下面列出的命令开关指定。

-d directory | -directory directory
-e file | -exec file
-m | -mapped
-r | -readnow
-s file | -symbols file
-se file
-x file | -command file
@file
-args
-async
-noasync
-batch
-cd directory
-epoch
-f | -fullname
-interpreter interp
-n | -nx
-nw | -nowindows
-q | -quiet | -silent
-statistics
-tclfe
-tui
-version
-w | -windows
-write
           

2.4.1 选择文件

-d directory

-directory directory

将目录添加到路径以搜索源文件。

-e file

-exec file

使用file file 作为可执行文件来执行。

-m

-mapped

如果通过 mmap 系统调用在您的系统上可以使用内存映射文件,您可以使用此选项将程序中的符号写入当前目录中的可重用文件。 如果您正在调试的程序名为 /tmp/fred ,则映射的符号文件为 /tmp/fred.syms 。 未来的调试会话会注意到这个文件的存在,并且可以从它快速映射符号信息,而不是从可执行程序中读取符号表。

.syms 文件特定于运行调试器的主机。 它保存了调试器内部符号表的精确图像。 它不能跨多个主机平台共享。

注意:
此选项取决于并非所有系统都支持的操作系统设施。
           

-r

-readnow

立即读取每个符号文件的整个符号表,而不是默认的,即根据需要增量读取。 这会使启动速度变慢,但会使未来的操作速度更快。

您通常结合使用 -mapped 和 -readnow 选项来构建一个包含完整符号信息的 .syms 文件(第 2.18.1 节)。 以下命令只是构建一个 .syms 文件以供将来使用:

gdb -batch -nx -mapped -readnow progname
           

-s file

-symbols file

从文件 file 中读取符号表。

-se file

从文件文件中读取符号表并将其用作可执行文件。

-x file

-command file

从指定的命令文件(第 4.3 节)执行调试器命令。

@file

使用存储在指定文件中的命令参数(第 2.3 节)。

注意:
at 符号 (@) 和文件之间不能出现空格。
           

2.4.2 选择模式

调试器可以在各种替代模式(即批处理模式或安静模式)下运行。

-args

更改命令行的解释,以便可执行文件后面的参数作为命令行参数传递给下级。 此选项停止选项处理。

-async

将异步事件循环用于命令行界面。 调试器通过特殊的事件循环处理所有事件,例如用户键盘输入。 这允许它与正在运行的调试进程并行接受和处理用户命令,因此您无需在键入下一个命令之前等待控制权返回到调试器。

注意:
从 5.1 版本开始,异步操作的目标端还没有到位,因此 -async 不能完全工作。
           

当标准输入连接到终端设备时,调试器默认使用异步事件循环,除非被 -noasync 选项禁用。

-noasync

禁用命令行界面的异步事件循环。

-batch

以批处理模式运行。 在处理所有由 -x 指定的命令文件(以及来自初始化文件的所有命令,如果没有被 -n 禁止)后以状态 0 退出。 如果在执行命令文件中的命令时发生错误,则以非零状态退出。

批处理模式可用于将调试器作为过滤器运行。 例如,在另一台计算机上下载并运行程序; 为了使这更有用,消息:

Program exited normally.

在批处理模式下运行时不会发出。 通常,只要程序在调试器控制下运行时终止,就会发出此消息。

-cd directory

使用目录作为其工作目录而不是当前目录来运行调试器。

-epoch

Epoch Emacs-GDB 接口在将调试器作为子进程运行时设置此选项。 它告诉调试器修改其打印例程,以便允许 Epoch 在单独的窗口中显示表达式的值。

-f

-fullname

GNU Emacs 在将调试器作为子进程运行时设置此选项。 它告诉调试器在每次显示堆栈帧时(包括每次程序停止时)以标准的、可识别的方式输出完整的文件名和行号。 这种可识别的格式看起来像两个 \032 字符,后跟文件名、行号和用冒号分隔的字符位置,以及一个换行符。 Emacs-to-GDB 接口程序使用两个\032 字符作为信号来显示框架的源代码。

-interpreter interp

使用解释器 interp 与控制程序或设备接口。 此选项旨在由使用它作为后端与调试器进行通信的程序设置。 见第 5 章。

-n

-nx

不要执行在任何初始化文件中找到的命令。 通常,调试器在处理命令选项和参数后执行这些文件中的命令。 见第 4.3 节。

-nw

-nowindows

“No windows”。 如果调试器通常使用图形用户界面 (GUI) 运行,则此选项会告诉它仅使用命令行界面。 如果没有可用的 GUI,则此选项无效。

-q

-quiet

-silent

“安静的”。 不要打印介绍和版权信息。 这些消息也在批处理模式下被抑制。

-statistics

在调试器完成每个命令并返回到提示符后,显示有关时间和内存使用情况的统计信息。

-tclfe

在 GDB 中启用 Tcl 脚本(第 4.4 节)。 Tcl 命令名称被添加到调试器命令名称空间中。

默认情况下,Tcl 脚本是禁用的。

-tui

启动时激活文本用户界面。 文本用户界面管理终端上的多个文本窗口,显示源代码、汇编代码、寄存器和调试器命令输出(参见第 5.2 节)。 或者,可以通过调用程序 gdbtui 来启用文本用户界面。 如果您从 Emacs 运行调试器,请不要使用此选项(请参阅第 5.3 节)。

-version

显示调试器版本号和无保修说明,然后退出。

-w

-windows

如果调试器包含 GUI,则此选项要求尽可能使用它。

-write

打开可执行文件进行读取和写入。 这等效于 set write on 命令(参见第 2.17.5 节)。

继续阅读