2003-08-26 Jeff Johnston <jjohnstn@redhat.com>
authorJeff Johnston <jjohnstn@redhat.com>
Tue, 26 Aug 2003 17:33:22 +0000 (17:33 +0000)
committerJeff Johnston <jjohnstn@redhat.com>
Tue, 26 Aug 2003 17:33:22 +0000 (17:33 +0000)
        * ia64-tdep.c (ia64_convert_from_func_addr): New function.
        (ia64_gdbarch_init): Call set_gdbarch_convert_from_func_addr().

gdb/ChangeLog
gdb/ia64-tdep.c

index 22213ef2330aee6dd8b8f123fd85a3858fadbaef..7d68388e238594ee4f204045beabc52e58b0c59b 100644 (file)
@@ -1,3 +1,8 @@
+2003-08-26  Jeff Johnston  <jjohnstn@redhat.com>
+
+       * ia64-tdep.c (ia64_convert_from_func_addr): New function.
+       (ia64_gdbarch_init): Call set_gdbarch_convert_from_func_addr(). 
+
 2003-08-26  Jason Merrill  <jason@redhat.com>
 
        * dwarf2read.c (dwarf_attr_name): Move DW_AT_MIPS_linkage_name
index e5e5ae88b0d4add82e8c5ea107b422642c4181e9..1f1eb0e4bf99aa89b17e492dad5b0a0b3c498634 100644 (file)
@@ -2281,6 +2281,23 @@ find_func_descr (CORE_ADDR faddr, CORE_ADDR *fdaptr)
   return fdesc; 
 }
 
+/* Use the following routine when printing out function pointers
+   so the user can see the function address rather than just the
+   function descriptor.  */
+static CORE_ADDR
+ia64_convert_from_func_ptr_addr (CORE_ADDR addr)
+{
+  struct obj_section *s;
+
+  s = find_pc_section (addr);
+
+  /* check if ADDR points to a function descriptor.  */
+  if (s && strcmp (s->the_bfd_section->name, ".opd") == 0)
+    return read_memory_unsigned_integer (addr, 8);
+
+  return addr;
+}
+
 static CORE_ADDR
 ia64_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
 {
@@ -2684,6 +2701,7 @@ ia64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
     gdbarch, ia64_remote_translate_xfer_address);
 
   set_gdbarch_print_insn (gdbarch, ia64_print_insn);
+  set_gdbarch_convert_from_func_ptr_addr (gdbarch, ia64_convert_from_func_ptr_addr);
 
   return gdbarch;
 }
This page took 0.030062 seconds and 4 git commands to generate.