[OE-core] [PATCH] gdb: gdbserver: update ctrl-c handling

2018-09-18 Thread Zhixiong Chi
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 
---
 meta/recipes-devtools/gdb/gdb-8.2.inc |  1 +
 .../gdb/gdb/gdbserver-ctrl-c-handling.patch   | 26 +++
 2 files changed, 27 insertions(+)
 create mode 100644 
meta/recipes-devtools/gdb/gdb/gdbserver-ctrl-c-handling.patch

diff --git a/meta/recipes-devtools/gdb/gdb-8.2.inc 
b/meta/recipes-devtools/gdb/gdb-8.2.inc
index 999fdde031..dfb0059123 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 00..d1ff5a5d75
--- /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: Pending
++
++Author: Josh Gao
++cherry-picked patch from https://sourceware.org/bugzilla/show_bug.cgi?id=18945
++Signed-off-by: Zhixiong Chi 
+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
-- 
2.17.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] gdb: gdbserver: update ctrl-c handling

2018-09-18 Thread Burton, Ross
On Tue, 18 Sep 2018 at 10:01, Zhixiong Chi  wrote:
> ++Upstream-Status: Pending
> ++cherry-picked patch from 
> https://sourceware.org/bugzilla/show_bug.cgi?id=18945

Sounds like the status should be:

Upstream-Status: Submitted
[https://sourceware.org/bugzilla/show_bug.cgi?id=18945]

Ross

Ross
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] gdb: gdbserver: update ctrl-c handling

2018-09-18 Thread Zhixiong Chi



On 2018年09月18日 18:10, Burton, Ross wrote:

On Tue, 18 Sep 2018 at 10:01, Zhixiong Chi  wrote:

++Upstream-Status: Pending
++cherry-picked patch from https://sourceware.org/bugzilla/show_bug.cgi?id=18945

Sounds like the status should be:

Upstream-Status: Submitted
[https://sourceware.org/bugzilla/show_bug.cgi?id=18945]

Thanks for your reminder, I will send the V2.

Zhixiong.


Ross

Ross


--
-
Thanks,
Zhixiong Chi
Tel: +86-10-8477-7036

--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core