threadno is the internal GDB thread number, as shown in the first field of the 'info threads' display. To apply a command to all threads, use thread apply all args.
Whenever GDB stops your program, due to a breakpoint or a signal, it automatically selects the thread where that breakpoint or signal happened. GDB alerts you to the context switch with a message of the form '[Switching to systag]' to identify the thread.
See “Stopping and starting
See “Killing the child process” (page 45), for information about watchpoints in programs with multiple threads.
NOTE: On
To prevent the thread from being interrupted while holding the rnode lock, make the NFS mount
4.10 Debugging programs with multiple processes
On most systems, GDB has no special support for debugging programs which create additional processes using the fork function. When a program forks, GDB will continue to debug the parent process and the child process will run unimpeded. If you have set a breakpoint in any code which the child then executes, the child will get a SIGTRAP signal which (unless it catches the signal) will cause it to terminate.
However, if you want to debug the child process there is a workaround which isn't too painful. Put a call to sleep in the code which the child process executes after the fork. It may be useful to sleep only if a certain environment variable is set, or a certain file exists, so that the delay need not occur when you do not want to run GDB on the child. While the child is sleeping, use the ps program to get its process ID. Then tell GDB (a new invocation of GDB if you are also debugging the parent process) to attach to the child process (see “Debugging a Running Process” (page 44)). From that point on you can debug the child process just like any other process which you attached to.
On
By default, when a program forks, GDB will continue to debug the parent process and the child process will run unimpeded.
If you want to follow the child process instead of the parent process, use the command set
4.10 Debugging programs with multiple processes | 49 |