You may define hooks, which are a special kind of user-defined command. Whenever you run the command foo, if the user-defined command hook-foo exists, it is executed (with no arguments) before that command.
In addition, a pseudo-command, stop exists. Defining (hook-stop) makes the associated commands execute every time execution stops in your program: before breakpoint commands are run, displays are printed, or the stack frame is printed.
For example, to ignore SIGALRM signals while single-stepping, but treat them normally during normal execution, you could define:
define hook-stop handle SIGALRM nopass end define hook-run handle SIGALRM pass end define hook-continue handle SIGLARM pass end
You can define a hook for any single-word command in the debugger, but not for command aliases; you should define a hook for the basic command name, e.g. backtrace rather than bt. If an error occurs during the execution of your hook, execution of the debugger commands stops and the debugger issues a prompt (before the command that you actually typed had a chance to run).
If you try to define a hook which does not match any known command, you get a warning from the define command.