diff options
author | Doug Evans <xdje42@gmail.com> | 2014-03-30 12:24:31 -0700 |
---|---|---|
committer | Doug Evans <xdje42@gmail.com> | 2014-03-30 12:24:31 -0700 |
commit | 7c0bc051fcae47b9f8620de156ddd744ec85309d (patch) | |
tree | 8225435a68315eb79f934cea5f24dbd9a20a3b4c /gdb | |
parent | 97d8f0ee776d6bbeef9c529f2880dedbb659492e (diff) | |
download | gdb-7c0bc051fcae47b9f8620de156ddd744ec85309d.zip gdb-7c0bc051fcae47b9f8620de156ddd744ec85309d.tar.gz gdb-7c0bc051fcae47b9f8620de156ddd744ec85309d.tar.bz2 |
* inferior.h (enum stop_kind): Improve comment.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/inferior.h | 16 |
2 files changed, 12 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c5c962a..4c464e2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2014-03-30 Doug Evans <xdje42@gmail.com> + + * inferior.h (enum stop_kind): Improve comment. + 2014-03-28 Joel Brobecker <brobecker@adacore.com> * varobj.c (varobj_value_has_mutated): If NEW_VALUE is diff --git a/gdb/inferior.h b/gdb/inferior.h index 64a78ce..f8d358d 100644 --- a/gdb/inferior.h +++ b/gdb/inferior.h @@ -305,20 +305,20 @@ enum step_over_calls_kind setting up a remote connection; it is like STOP_QUIETLY_NO_SIGSTOP except that there is no need to hide a signal. */ -/* It is also used after attach, due to attaching to a process. This - is a bit trickier. When doing an attach, the kernel stops the - debuggee with a SIGSTOP. On newer GNU/Linux kernels (>= 2.5.61) - the handling of SIGSTOP for a ptraced process has changed. Earlier - versions of the kernel would ignore these SIGSTOPs, while now - SIGSTOP is treated like any other signal, i.e. it is not muffled. - +/* STOP_QUIETLY_NO_SIGSTOP is used to handle a tricky situation with attach. + When doing an attach, the kernel stops the debuggee with a SIGSTOP. + On newer GNU/Linux kernels (>= 2.5.61) the handling of SIGSTOP for + a ptraced process has changed. Earlier versions of the kernel + would ignore these SIGSTOPs, while now SIGSTOP is treated like any + other signal, i.e. it is not muffled. + If the gdb user does a 'continue' after the 'attach', gdb passes the global variable stop_signal (which stores the signal from the attach, SIGSTOP) to the ptrace(PTRACE_CONT,...) call. This is problematic, because the kernel doesn't ignore such SIGSTOP now. I.e. it is reported back to gdb, which in turn presents it back to the user. - + To avoid the problem, we use STOP_QUIETLY_NO_SIGSTOP, which allows gdb to clear the value of stop_signal after the attach, so that it is not passed back down to the kernel. */ |