This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 22/22] [GDBserver] Multi-process + multi-arch: QNX NTO


This adjusts the QNX NTO port to new interfaces.

Completely untested.

2012-05-30  Pedro Alves  <palves@redhat.com>

	* nto-low.c (nto_tdesc): New global.
	(do_attach): Set the new process'es tdesc.
	* nto-low.h (struct target_desc): Forward declare.
	(nto_tdesc): Declare.
	* nto-x86-low.c (tdesc_i386): Declare.
	(nto_x86_arch_setup): Set `nto_tdesc'.
---
 gdb/gdbserver/nto-low.c     |    6 +++++-
 gdb/gdbserver/nto-low.h     |    6 ++++++
 gdb/gdbserver/nto-x86-low.c |    2 ++
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/gdb/gdbserver/nto-low.c b/gdb/gdbserver/nto-low.c
index 5e4c60d..3670133 100644
--- a/gdb/gdbserver/nto-low.c
+++ b/gdb/gdbserver/nto-low.c
@@ -35,6 +35,8 @@
 extern int using_threads;
 int using_threads = 1;
 
+const struct target_desc *nto_tdesc;
+
 static void
 nto_trace (const char *fmt, ...)
 {
@@ -203,11 +205,13 @@ do_attach (pid_t pid)
       && (status.flags & _DEBUG_FLAG_STOPPED))
     {
       ptid_t ptid;
+      struct process_info *proc;
 
       kill (pid, SIGCONT);
       ptid = ptid_build (status.pid, status.tid, 0);
       the_low_target.arch_setup ();
-      add_process (status.pid, 1);
+      proc = add_process (status.pid, 1);
+      proc->tdesc = nto_tdesc;
       TRACE ("Adding thread: pid=%d tid=%ld\n", status.pid,
 	     ptid_get_lwp (ptid));
       nto_find_new_threads (&nto_inferior);
diff --git a/gdb/gdbserver/nto-low.h b/gdb/gdbserver/nto-low.h
index 2c450b7..1cc8f22 100644
--- a/gdb/gdbserver/nto-low.h
+++ b/gdb/gdbserver/nto-low.h
@@ -19,6 +19,8 @@
 #ifndef NTO_LOW_H
 #define NTO_LOW_H
 
+struct target_desc;
+
 enum regset_type
 {
   NTO_REG_GENERAL,
@@ -40,5 +42,9 @@ struct nto_target_ops
 
 extern struct nto_target_ops the_low_target;
 
+/* The inferior's target description.  This is a global because the
+   LynxOS ports support neither bi-arch nor multi-process.  */
+extern const struct target_desc *nto_tdesc;
+
 #endif
 
diff --git a/gdb/gdbserver/nto-x86-low.c b/gdb/gdbserver/nto-x86-low.c
index 9163880..c9cb004 100644
--- a/gdb/gdbserver/nto-x86-low.c
+++ b/gdb/gdbserver/nto-x86-low.c
@@ -28,6 +28,7 @@
 /* Definition auto generated from reg-i386.dep.  */
 extern void init_registers_i386 ();
 extern struct reg *regs_i386;
+extern const struct target_desc *tdesc_i386;
 
 const unsigned char x86_breakpoint[] = { 0xCC };
 #define x86_breakpoint_len 1
@@ -91,6 +92,7 @@ nto_x86_arch_setup (void)
 {
   init_registers_i386 ();
   the_low_target.num_regs = 16;
+  nto_tdesc = tdesc_i386;
 }
 
 struct nto_target_ops the_low_target =


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]