GDB supports debugging programs with multiple threads (see Debugging Programs with Multiple Threads). There are two modes of controlling execution of your program within the debugger. In the default mode, referred to as all-stop mode, when any thread in your program stops (for example, at a breakpoint or while being stepped), all other threads in the program are also stopped by GDB. On some targets, GDB also supports non-stop mode, in which other threads can continue to run freely while you examine the stopped thread in the debugger.
• All-Stop Mode: | All threads stop when GDB takes control | |
• Non-Stop Mode: | Other threads continue to execute | |
• Background Execution: | Running your program asynchronously | |
• Thread-Specific Breakpoints: | Controlling breakpoints | |
• Interrupted System Calls: | GDB may interfere with system calls | |
• Observer Mode: | GDB does not alter program behavior |