dotfiles/talon/community/community-cursorless-0.4.0/apps/gdb/gdb.talon
2024-11-16 20:27:38 -07:00

156 lines
4 KiB
Text

os: linux
# XXX - this matches .gdb files atm
#win.title: /gdb/
tag: terminal
mode: user.gdb
-
tag(): user.gdb
tag(): user.debugger
##
# Generic debugger actions
##
# Code execution
action(user.debugger_step_into): "stepi\n"
action(user.debugger_step_over): "nexti\n"
action(user.debugger_step_line): "step\n"
action(user.debugger_step_over_line): "next\n"
action(user.debugger_step_out): "finish\n"
until <number>: "until {number}"
action(user.debugger_continue): "c\n"
action(user.debugger_stop): key("ctrl-c")
action(user.debugger_start): "run\n"
action(user.debugger_restart): "run\n"
# XXX -
action(user.debugger_detach): ""
# Registers
action(user.debugger_show_registers): "info registers\n"
action(user.debugger_get_register): "r "
action(user.debugger_set_register):
insert("set $=")
edit.left()
# Breakpoints
action(user.debugger_show_breakpoints): "info breakpoints\n"
action(user.debugger_add_sw_breakpoint): "break "
# XXX -
action(user.debugger_add_hw_breakpoint): ""
action(user.debugger_break_now): key("ctrl-c")
action(user.debugger_break_here): "break\n"
action(user.debugger_clear_all_breakpoints): "d br\n"
force clear all break points:
insert("d br\n")
insert("y\n")
action(user.debugger_clear_breakpoint):
insert("d br ")
action(user.debugger_enable_all_breakpoints):
insert("enable br\n")
action(user.debugger_enable_breakpoint):
insert("enable br ")
action(user.debugger_disable_all_breakpoints):
insert("disable br\n")
action(user.debugger_disable_breakpoint):
insert("disable br ")
break [on] clipboard:
insert("break ")
key(ctrl-shift-v)
key(enter)
# Memory inspection
# Type inspection
##
# gdb specific functionality
##
# information
list [source]: "list\n"
info source: "info source\n"
print: "p "
print [variable] <user.text>: "p {text}"
print hex: "p/x "
print hex [variable] <user.text>: "p/x {text}"
print string: "p/s "
# hexdumping
# XXX - switch the sizes to a list in python?
# XXX - should cache the last used size
hex dump <number> bytes: "x/{number}bx "
hex dump <number> (half|short) words: "x/{number}hx "
hex dump <number> (d|long) words: "x/{number}dx "
hex dump <number> quad words: "x/{number}gx "
# this is some arbitrary default for convenience
hex dump: "x/100gx "
hex dump highlighted:
insert("x/100gx ")
edit.copy()
edit.paste()
key(enter)
hex dump clipboard:
insert("x/100gx ")
edit.paste()
key(enter)
# execution
source: "source \t\t"
# displays
# XXX - move thee invoke command into a python script
(list|show|info) display: "info display\n"
display assembly line$: "display /i $pc\n"
display source: "display "
enable display <number_small>: "enable display {number_small}\n"
disable display <number_small>: "disable display {number_small}\n"
undisplay: "undisplay\n"
# variables
(list|show|info) local: "info local "
(list|show|info) local typed: "info local -t "
(list|show|info) variable: "info variable "
(list|show|info) variable typed: "info variable -t "
(list|show|info) locals: "info local\n"
(list|show|info) variables: "info variables\n"
# threads
info threads: "info threads\n"
restart [program]: "r\n"
continue: "c\n"
back trace: "bt\n"
debug quit: "quit\n"
# more quickly quit when there are inferiors
debug force quit: "quit\ny\n"
(show|info) (inf|inferiors): "info inferiors\n"
inferior <number_small>$: "inferior {number_small}\n"
inferior: "inferior "
resume main (inf|inferior):
insert("inferior 1\n")
insert("c\n")
resume [from] (inf|inferior) <number_small>$:
insert("inferior {number_small}\n")
insert("c\n")
# arguments
set args: "set args "
# settings
show follow (fork|forks) [mode]: "show follow-fork-mode\n"
[set] follow (fork|forks) [mode] child: "set follow-fork-mode child\n"
[set] follow (fork|forks) [mode] parent: "set follow-fork-mode parent\n"
show detach on fork: "show detach-on-fork\n"
set detach on fork: "set detach-on-fork on\n"
unset detach on fork: "set detach-on-fork off\n"
# list
show list size: "show listsize\n"
set list size <number_small>: "set listsize {number_small}\n"
# misc
clear screen: "shell clear\n"