aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Roirand <roirand@adacore.com>2018-09-09 15:13:58 +0200
committerXavier Roirand <roirand@adacore.com>2018-09-11 15:35:26 +0200
commitde1ec836c8cc4eeb68e3e4eb8223eeff9840546e (patch)
tree4c86fd583bd7b1825397769ecb80bbd14510e5a4
parent6f1107b59311300cb44379022f19af42db98b1e4 (diff)
downloadgdb-de1ec836c8cc4eeb68e3e4eb8223eeff9840546e.zip
gdb-de1ec836c8cc4eeb68e3e4eb8223eeff9840546e.tar.gz
gdb-de1ec836c8cc4eeb68e3e4eb8223eeff9840546e.tar.bz2
Darwin: fix SIGTRAP when debugging
Debugging a program under Darwin does not work: (gdb) start Temporary breakpoint 1 at 0x100000fb4: file /tmp/helloworld.c, line 1. Starting program: /private/tmp/helloworld [New Thread 0x2903 of process 60326] During startup program terminated with signal SIGTRAP, Trace/breakpoint trap. Field signaled from darwin_thread_info is not initialized thus signal sent to the debuggee is considered as not sent by GDB whereas it should. This patch fixes this problem and also updates (change type and/or initialize) other fields in the same structure at the same time. gdb/ChangeLog: * darwin-nat.h (struct darwin_thread_info) <gdb_port, inf_port, msg_state>: Initialize. (struct darwin_thread_info) <signaled, single_step>: Change type and initialize. (struct darwin_thread_info) <event>: Initialize. Change-Id: I0fe2a6985df9d0dfcc8a2a258a3ef70cfa19b403
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/darwin-nat.h12
2 files changed, 14 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index dc4346e..1469366 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2018-09-11 Xavier Roirand <roirand@adacore.com>
+
+ * darwin-nat.h (struct darwin_thread_info) <gdb_port,
+ inf_port, msg_state>: Initialize.
+ (struct darwin_thread_info) <signaled, single_step>: Change
+ type and initialize.
+ (struct darwin_thread_info) <event>: Initialize.
+
2018-09-10 Sergio Durigan Junior <sergiodj@redhat.com>
PR gdb/23555
diff --git a/gdb/darwin-nat.h b/gdb/darwin-nat.h
index 5965df0..89a7c06 100644
--- a/gdb/darwin-nat.h
+++ b/gdb/darwin-nat.h
@@ -114,25 +114,25 @@ enum darwin_msg_state
struct darwin_thread_info : public private_thread_info
{
/* The thread port from a GDB point of view. */
- thread_t gdb_port;
+ thread_t gdb_port = 0;
/* The thread port from the inferior point of view. Not to be used inside
gdb except for get_ada_task_ptid. */
- thread_t inf_port;
+ thread_t inf_port = 0;
/* Current message state.
If the kernel has sent a message it expects a reply and the inferior
can't be killed before. */
- enum darwin_msg_state msg_state;
+ enum darwin_msg_state msg_state = DARWIN_RUNNING;
/* True if this thread is single-stepped. */
- unsigned char single_step;
+ bool single_step = false;
/* True if a signal was manually sent to the thread. */
- unsigned char signaled;
+ bool signaled = false;
/* The last exception received. */
- struct darwin_exception_msg event;
+ struct darwin_exception_msg event {};
};
typedef struct darwin_thread_info darwin_thread_t;