Hexagon GDB Debugger介绍(49)

240 篇文章 11 订阅

5 命令解释器

5.1 概述

调试器支持多个命令解释器和一些命令基础设施,以允许用户或用户界面编写者在解释器之间切换或在其他解释器中运行命令。
调试器当前支持两种命令解释器,控制台解释器(有时称为命令行解释器或 CLI)和机器接口解释器(或 GDB/MI)。 本文档仅描述控制台解释器。

5.2 文本用户界面(Text user interface)

调试器文本用户界面 (TUI) 是一个终端界面,它使用curses 库在单独的文本窗口中显示源文件、程序集输出、程序寄存器和调试器命令。

通过使用 gdbtui 或 gdb -tui调用调试器来启用 TUI。

注意 
    Windows 版本的调试器不支持 TUI。

5.2.1 TUI概述

TUI 有两种显示模式,可以在调试器运行时切换:

  • 一种curses(或TUI)模式,它在终端上显示多个文本窗口。
  • 与没有TUI 配置的调试器相对应的标准模式。

在 TUI 模式下,调试器可以在终端上显示几个文本窗口:

command
此窗口是带有调试器提示和调试器输出的调试器命令窗口。 调试器输入仍然使用 readline 但通过 TUI 进行管理。 command窗口始终可见。

source
源窗口显示程序的源文件。 当前行以及活动断点显示在此窗口中。

assembly
汇编窗口显示程序的反汇编输出。

register
此窗口显示处理器寄存器。 它检测寄存器何时发生更改,并且在这种情况下,已更改的寄存器会突出显示。

源代码和汇编窗口通过突出显示当前行并使用 > 标记来显示当前程序位置。 断点也用两个标记表示。 第一个表示断点类型:

B 至少被击中一次的断点。
b 从未命中的断点。
H 至少被击中一次的硬件断点。
h 从未命中的硬件断点。

第二个标记表示断点是否启用:
+ 断点已启用
- 断点未启用

源、汇编和寄存器窗口附加到线程和框架位置。 它们会在当前线程更改、帧更改或程序计数器更改时更新。 这三个窗口由 TUI 根据几种布局排列。 布局定义了这三个窗口中的哪一个是可见的。

可以使用以下布局:

  • source
  • assembly
  • source and assembly
  • source and registers
  • assembly and registers

在命令窗口的顶部,状态行提供有关当前正在调试的进程的各种信息。 当显示的信息发生变化时,状态行会更新。 显示以下字段:

target 表示当前的调试器目标(第 3.2 节)。
process 提供有关当前线程号的信息。
function 给出所选框架的当前函数名称。 如果打开 demanling(第 2.12.7 节),则名称将被破坏。 当没有符号对应当前程序计数器的字符串 ?? 被显示。
line 指示所选帧的当前行号。 当当前行号未知时,字符串 ?? 被显示。
pc 表示当前程序计数器地址。

5.2.2 TUI 键绑定

TUI 在 readline 键映射中安装了几个键绑定(参见第 5.4 节,后续)。 它们允许在 TUI 模式下离开或进入,或者直接在 TUI 布局和窗口上操作。 TUI 还提供了一个 SingleKey 键映射,它将几个键直接绑定到调试器命令。 为 TUI 模式和调试器标准模式安装了以下键绑定。

Ctrl-x Ctrl-a
Ctrl-x a
Ctrl-x A

进入或离开 TUI 模式。 当离开TUI模式时,离开curses窗口管理,调试器直接在终端上使用它的标准模式写操作。 当进入 TUI 模式时,控制权返回给 Curses 窗口。 然后刷新屏幕。

Ctrl-x 1
使用只有一个窗口的 TUI 布局。 布局将是source or assembly。 当 TUI 模式未激活时,Breakpoint 被禁用,它将切换到 TUI 模式。

将此键绑定视为 Emacs Ctrl-x 1 绑定。

Ctrl-x 2
使用至少有两个窗口的 TUI 布局。 当前布局显示已经有两个窗口时,将使用具有两个窗口的下一个布局。 选择新布局时,一个窗口将始终为先前布局和新布局所共有。
将其视为 Emacs Ctrl-x 2 绑定。

Ctrl-x o
更改活动窗口。 TUI 将多个键绑定(如滚动和箭头键)与活动窗口相关联。 此命令将焦点转移到下一个 TUI 窗口。
将其视为 Emacs Ctrl-x o 绑定。

Ctrl-x s
使用将SingleKey绑定到调试器命令的 TUI SingleKey 键盘映射(参见第 5.2.3 节)。

以下按键绑定仅由 TUI 模式处理:
<PgUp> 将活动窗口向上滚动一页。
<PgDn> 将活动窗口向下滚动一页。
<Up> 将活动窗口向上滚动一行。
<Down> 将活动窗口向下滚动一行。
<Left> 将活动窗口向左滚动一列。
<Right> 将活动窗口向右滚动一栏。
<Ctrl-L> 刷新屏幕。

在 TUI 模式下,活动窗口使用箭头键进行滚动。 这意味着当活动窗口是命令窗口时,它们可用于 readline。 命令窗口没有焦点时,需要使用其他readline键绑定,如Ctrl-p、Ctrl-n、Ctrl-b、Ctrl-f

5.2.3 TUI单键模式

TUI 提供了 SingleKey 模式,在该模式下,它在 readline 键盘映射中安装特定键绑定以将单个键连接到某些调试器命令。

c continue
d down
f finish
n next
q exit the SingleKey mode.
r run
s step
u up
v info locals
w where

其他键暂时切换到调试器命令提示符。 按下的键被插入到编辑缓冲区中,这样就可以在不与 TUI SingleKey 模式交互的情况下键入大多数调试器命令。 输入命令后,TUI SingleKey模式将恢复。 永久退出此模式的唯一方法是按 q 或 Ctrl-x s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值