2005-02-07 Jeff Johnston * linux-nat.c (linux_nat_xfer_memory): Don't use linux_proc_xfer_memory for ia64 threads. --- gdb-6.3/gdb/linux-nat.c.fix Fri Feb 4 22:52:40 2005 +++ gdb-6.3/gdb/linux-nat.c Mon Feb 7 19:56:01 2005 @@ -2381,12 +2381,31 @@ linux_nat_xfer_memory (CORE_ADDR memaddr struct cleanup *old_chain = save_inferior_ptid (); int xfer; +#ifdef NATIVE_XFER_UNWIND_TABLE + /* FIXME: For ia64, we cannot currently use linux_proc_xfer_memory + for accessing thread storage. Revert when Bugzilla 147436 + is fixed. */ + if (is_lwp (inferior_ptid)) + { + /* For lwps, we cannot use linux_proc_xfer_memory. */ + inferior_ptid = pid_to_ptid (GET_LWP (inferior_ptid)); + xfer = child_xfer_memory (memaddr, myaddr, len, write, attrib, target); + } + else + { + xfer = linux_proc_xfer_memory (memaddr, myaddr, len, write, + attrib, target); + if (xfer == 0) + xfer = child_xfer_memory (memaddr, myaddr, len, write, attrib, target); + } +#else if (is_lwp (inferior_ptid)) inferior_ptid = pid_to_ptid (GET_LWP (inferior_ptid)); xfer = linux_proc_xfer_memory (memaddr, myaddr, len, write, attrib, target); if (xfer == 0) xfer = child_xfer_memory (memaddr, myaddr, len, write, attrib, target); +#endif do_cleanups (old_chain); return xfer;