Index: config/ia64/nm-linux.h =================================================================== RCS file: /cvs/src/src/gdb/config/ia64/nm-linux.h,v retrieving revision 1.10 diff -u -r1.10 nm-linux.h --- config/ia64/nm-linux.h 20 Jun 2003 13:57:29 -0000 1.10 +++ config/ia64/nm-linux.h 14 Nov 2003 00:06:02 -0000 @@ -69,4 +69,15 @@ 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: target.h =================================================================== RCS file: /cvs/src/src/gdb/target.h,v retrieving revision 1.53 diff -u -r1.53 target.h --- target.h 10 Nov 2003 21:20:44 -0000 1.53 +++ target.h 14 Nov 2003 00:06:03 -0000 @@ -223,8 +223,10 @@ /* 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, ... */ }; Index: inftarg.c =================================================================== RCS file: /cvs/src/src/gdb/inftarg.c,v retrieving revision 1.20 diff -u -r1.20 inftarg.c --- inftarg.c 10 Nov 2003 21:20:44 -0000 1.20 +++ inftarg.c 14 Nov 2003 00:06:03 -0000 @@ -571,14 +571,12 @@ 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: ia64-linux-nat.c =================================================================== RCS file: /cvs/src/src/gdb/ia64-linux-nat.c,v retrieving revision 1.20 diff -u -r1.20 ia64-linux-nat.c --- ia64-linux-nat.c 2 Oct 2003 20:28:29 -0000 1.20 +++ ia64-linux-nat.c 14 Nov 2003 00:06:03 -0000 @@ -34,6 +34,7 @@ #ifdef HAVE_SYS_REG_H #include #endif +#include #include #include @@ -644,4 +645,14 @@ write_register_pid (IA64_PSR_REGNUM, psr, 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); }