Skip to content
Jean-Luc Béchennec edited this page Dec 17, 2015 · 1 revision

How to debug using GDB on POSIX

When running on Posix/Unix, Trampoline sends itself a SIGUSR1 signal to do a context switch (it acts as a software interrupt), whether cooperatively or preemptively. GDB have to be configured to pass the signal to the application silently. This is done by issuing the following command before running the application:

(gdb) handle SIGUSR1 pass noprint nostop
Signal        Stop      Print   Pass to program Description
SIGUSR1       No        No      Yes             User defined signal 1

For each signal you are using, you have to issue such a command to GDB. The following signals are used by Trampoline:

  • SIGUSR1 for context switch;
  • SIGUSR2 for counters;
  • SIGALRM for timing protection;
  • any signal you configured for ISR2.