OSDN Git Service

2003-11-14 Jeff Johnston <jjohnstn@redhat.com>
authorjjohnstn <jjohnstn>
Fri, 14 Nov 2003 20:49:23 +0000 (20:49 +0000)
committerjjohnstn <jjohnstn>
Fri, 14 Nov 2003 20:49:23 +0000 (20:49 +0000)
        * config/ia64/nm-linux.h (NATIVE_XFER_UNWIND_TABLE): New macro to
        set up the ia64 linux native target method for getting the kernel
        unwind table.
        * ia64-linux-nat.c (ia64_linux_xfer_unwind_table): New function.
        * inftarg.c (child_xfer_partial): Enable section of code to
        handle TARGET_OBJECT_UNWIND_TABLE.
        * target.h (target_object): Add new TARGET_OBJECT_UNWIND_TABLE macro.

gdb/ChangeLog
gdb/config/ia64/nm-linux.h
gdb/ia64-linux-nat.c
gdb/inftarg.c
gdb/target.h

index 5f6bdab..ff12fa6 100644 (file)
@@ -1,3 +1,13 @@
+2003-11-14  Jeff Johnston  <jjohnstn@redhat.com>
+       * config/ia64/nm-linux.h (NATIVE_XFER_UNWIND_TABLE): New macro to
+       set up the ia64 linux native target method for getting the kernel
+       unwind table.
+       * ia64-linux-nat.c (ia64_linux_xfer_unwind_table): New function.
+       * inftarg.c (child_xfer_partial): Enable section of code to
+       handle TARGET_OBJECT_UNWIND_TABLE.
+       * target.h (target_object): Add new TARGET_OBJECT_UNWIND_TABLE macro.
+
 2003-11-14  Ian Lance Taylor  <ian@wasabisystems.com>
 
        * config/arm/nbsd.mt (TM_FILE): Define.
index 0418495..01c9807 100644 (file)
@@ -69,4 +69,15 @@ extern int ia64_linux_insert_watchpoint (ptid_t ptid, CORE_ADDR addr,
 extern int ia64_linux_remove_watchpoint (ptid_t ptid, CORE_ADDR addr,
                                          int len);
 
+#include "target.h"
+
+#define NATIVE_XFER_UNWIND_TABLE ia64_linux_xfer_unwind_table
+extern LONGEST ia64_linux_xfer_unwind_table (struct target_ops *ops, 
+                                            enum target_object object,
+                                            const char *annex, 
+                                            void *readbuf,
+                                            const void *writebuf,
+                                            ULONGEST offset, 
+                                            LONGEST len);
+
 #endif /* #ifndef NM_LINUX_H */
index a2ca8fa..00f66fb 100644 (file)
@@ -34,6 +34,7 @@
 #ifdef HAVE_SYS_REG_H
 #include <sys/reg.h>
 #endif
+#include <sys/syscall.h>
 #include <sys/user.h>
 
 #include <asm/ptrace_offsets.h>
@@ -645,3 +646,13 @@ ia64_linux_stopped_by_watchpoint (ptid_t ptid)
 
   return (CORE_ADDR) siginfo.si_addr;
 }
+
+LONGEST 
+ia64_linux_xfer_unwind_table (struct target_ops *ops,
+                             enum target_object object,
+                             const char *annex,
+                             void *readbuf, const void *writebuf,
+                             ULONGEST offset, LONGEST len)
+{
+  return syscall (__NR_getunwind, readbuf, len);
+}
index 6829400..a20c39f 100644 (file)
@@ -571,14 +571,12 @@ child_xfer_partial (struct target_ops *ops, enum target_object object,
                                  NULL, ops);
       return -1;
 
-#if 0
     case TARGET_OBJECT_UNWIND_TABLE:
 #ifndef NATIVE_XFER_UNWIND_TABLE
 #define NATIVE_XFER_UNWIND_TABLE(OPS,OBJECT,ANNEX,WRITEBUF,READBUF,OFFSET,LEN) (-1)
 #endif
       return NATIVE_XFER_UNWIND_TABLE (ops, object, annex, readbuf, writebuf,
                                       offset, len);
-#endif
 
 #if 0
     case TARGET_OBJECT_AUXV:
index 42b9596..21956df 100644 (file)
@@ -223,8 +223,10 @@ enum target_object
   /* AVR target specific transfer.  See "avr-tdep.c" and "remote.c".  */
   TARGET_OBJECT_AVR,
   /* Transfer up-to LEN bytes of memory starting at OFFSET.  */
-  TARGET_OBJECT_MEMORY
-  /* Possible future ojbects: TARGET_OJBECT_FILE, TARGET_OBJECT_PROC,
+  TARGET_OBJECT_MEMORY,
+  /* Kernel Unwind Table.  See "ia64-tdep.c".  */
+  TARGET_OBJECT_UNWIND_TABLE,
+  /* Possible future objects: TARGET_OBJECT_FILE, TARGET_OBJECT_PROC,
      TARGET_OBJECT_AUXV, ...  */
 };