Skip to content

debugger

The community/tags/debugger directory contains files that enable voice control of a debugger. It provides a set of commands to control program execution, inspect memory, and manage breakpoints, all through voice commands defined in Talon.

The two files in this directory, debugger.talon and debugger.py, work together to provide this functionality.

  • debugger.talon defines the voice commands themselves. It uses the user.debugger tag, which is enabled by the debugger.py file. This file maps spoken phrases to actions, like step into which will execute user.debugger_step_into() or show registers which executes user.debugger_show_registers(). It also includes commands for breakpoints, register manipulation, and memory inspection. The file allows for optional arguments to commands, like <number_small> in clear (break | break point) <number_small> which calls user.debugger_clear_breakpoint_id(number_small).
  • debugger.py defines the actions that are called by the debugger.talon file and the context and the list of registers. It defines an action class which contains empty methods for each command defined in the talon file. This file also defines the register list self.registers which is then used in the talon file to determine valid registers. The registers capture rule is used to pass register names to actions.