(gdb) added file for the GNU debugger
This commit is contained in:
71
gdb.md
Normal file
71
gdb.md
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
# GNU debugger
|
||||||
|
|
||||||
|
<!--toc:start-->
|
||||||
|
- [GNU debugger](#gnu-debugger)
|
||||||
|
<!--toc:end-->
|
||||||
|
|
||||||
|
|
||||||
|
## reset program
|
||||||
|
|
||||||
|
To reset the program one can use the following command
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# reset program and halt execution
|
||||||
|
monitor reset halt
|
||||||
|
```
|
||||||
|
|
||||||
|
## TUI mode
|
||||||
|
|
||||||
|
The `GDB` comes with a Terminal User Interface (TUI) which provides view for
|
||||||
|
the assembly, the registers and the source code.
|
||||||
|
|
||||||
|
One can enable the TUI with `tui enable` or disable with `tui disable`.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# enable/disable TUI
|
||||||
|
tui enable
|
||||||
|
tui disable
|
||||||
|
```
|
||||||
|
|
||||||
|
### TUI keybindings
|
||||||
|
|
||||||
|
| **Keybinding** | **Action** |
|
||||||
|
|:---------------|:-----------------------|
|
||||||
|
| `C-x,a/A/C-a` | toggle TUI mode on/off |
|
||||||
|
| `C-o` | focus next window |
|
||||||
|
|
||||||
|
|
||||||
|
### navigation
|
||||||
|
|
||||||
|
One can navigate using the [keybindings](#tui-keybindings), but the easiest
|
||||||
|
method is to use the `focus` command.
|
||||||
|
The `cmd` window is the only one that accepts alphanumeric input, so regardless
|
||||||
|
of the focused window, one can always use `focus <window>` to focus a specific
|
||||||
|
window.
|
||||||
|
|
||||||
|
|
||||||
|
### layouts
|
||||||
|
|
||||||
|
One can choose various layouts with the following command:
|
||||||
|
|
||||||
|
```
|
||||||
|
# choose layout, enable views
|
||||||
|
layout <layout-name>
|
||||||
|
# default layout options:
|
||||||
|
# * asm
|
||||||
|
# * regs
|
||||||
|
# * src
|
||||||
|
# * split
|
||||||
|
```
|
||||||
|
|
||||||
|
The `tui` command also allows to define custom layouts.
|
||||||
|
See the example below.
|
||||||
|
|
||||||
|
```
|
||||||
|
# defines a layout with the name `test` and the view `regs`, `src` and `cmd`
|
||||||
|
tui new-layout test {-horizontal regs 1 src 2} 1 cmd 1
|
||||||
|
|
||||||
|
# synopsis of `tui new-layout`
|
||||||
|
tui new-layout <name> <view> <weight> [<view> <weight>]
|
||||||
|
tui new-layout <name> {[-horizontal] <view> <weight> [<view> <weight>]} <weight>
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user