[oe-commits] [openembedded-core] 05/10: gdb: gdbserver: update ctrl-c handling

git at git.openembedded.org git at git.openembedded.org
Thu Sep 20 16:06:21 UTC 2018


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master
in repository openembedded-core.

commit 435f671981a090bd06e8f3bf3436d58d531afd49
Author: Zhixiong Chi <zhixiong.chi at windriver.com>
AuthorDate: Tue Sep 18 19:26:35 2018 -0700

    gdb: gdbserver: update ctrl-c handling
    
    A) gdbserver sends SIGINT not to the process, but to the process
    group (-signal_pid). But the attached process is not always a
    process group leader. If not, "kill (-signal_pid, SIGINT)" returns
    error and fails to interrupt the attached process. We cannot interrupt
    the process attached with gdbserver who is not a process group leader.
    
    This problem was created by the gdb upstream commit 78708b7c8c
    The commit fixed the following case B) bug.
    B) We cannot interrupt the process attached with gdbserver whose
    main thread exits (pthread_exit()).
    
    Now this patch can solve both A) and B).
    
    Signed-off-by: Zhixiong Chi <zhixiong.chi at windriver.com>
    Signed-off-by: Ross Burton <ross.burton at intel.com>
---
 meta/recipes-devtools/gdb/gdb-8.2.inc              |  1 +
 .../gdb/gdb/gdbserver-ctrl-c-handling.patch        | 26 ++++++++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/meta/recipes-devtools/gdb/gdb-8.2.inc b/meta/recipes-devtools/gdb/gdb-8.2.inc
index 999fdde..dfb0059 100644
--- a/meta/recipes-devtools/gdb/gdb-8.2.inc
+++ b/meta/recipes-devtools/gdb/gdb-8.2.inc
@@ -16,6 +16,7 @@ SRC_URI = "http://ftp.gnu.org/gnu/gdb/gdb-${PV}.tar.xz \
            file://0009-Change-order-of-CFLAGS.patch \
            file://0010-resolve-restrict-keyword-conflict.patch \
            file://0011-Fix-invalid-sigprocmask-call.patch \
+           file://gdbserver-ctrl-c-handling.patch \
 "
 SRC_URI[md5sum] = "b5a49dbff00d9a87fbe114d14b3101c0"
 SRC_URI[sha256sum] = "c3a441a29c7c89720b734e5a9c6289c0a06be7e0c76ef538f7bbcef389347c39"
diff --git a/meta/recipes-devtools/gdb/gdb/gdbserver-ctrl-c-handling.patch b/meta/recipes-devtools/gdb/gdb/gdbserver-ctrl-c-handling.patch
new file mode 100644
index 0000000..dffb0dd
--- /dev/null
+++ b/meta/recipes-devtools/gdb/gdb/gdbserver-ctrl-c-handling.patch
@@ -0,0 +1,26 @@
++This problem was created by the upstream commit 78708b7c8c
++After applying the commit, it will send SIGINT to the process group(-signal_pid).
++But if we use gdbserver send SIGINT, and the attached process is not a process
++group leader, then the "kill (-signal_pid, SIGINT)" returns error and fails  to
++interrupt the attached process.
++
++Upstream-Status: Submitted
++[https://sourceware.org/bugzilla/show_bug.cgi?id=18945]
++
++Author: Josh Gao
++Signed-off-by: Zhixiong Chi <zhixiong.chi at windriver.com>
+Index: gdb-8.2/gdb/gdbserver/linux-low.c
+===================================================================
+--- gdb-8.2.orig/gdb/gdbserver/linux-low.c
++++ gdb-8.2/gdb/gdbserver/linux-low.c
+@@ -5940,9 +5940,7 @@ linux_look_up_symbols (void)
+ static void
+ linux_request_interrupt (void)
+ {
+-  /* Send a SIGINT to the process group.  This acts just like the user
+-     typed a ^C on the controlling terminal.  */
+-  kill (-signal_pid, SIGINT);
++  kill (signal_pid, SIGINT);
+ }
+ 
+ /* Copy LEN bytes from inferior's auxiliary vector starting at OFFSET

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list