This is the mail archive of the gdb-patches@sources.redhat.com 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]

[rfa:ppc64gnulinux] Call ".malloc"


Hello,

When only minimal symbol information is available, the symbol "malloc", which is found in a data section because it's a descriptor, gets turns into a 32-bit int variable. Consequently, an attempt to call "malloc" is turned into to jump to the code designated by that 32-bit integer value found at malloc.

This patch avoids that problem entirely by specifying that on PPC64 GNU/Linux, the "malloc" function has the name ".malloc" (which is really the function's start address).

ok?
Andrew
2003-11-13  Andrew Cagney  <cagney@redhat.com>

	* ppc-linux-tdep.c (ppc_linux_init_abi): Set PPC64's
	"name_of_malloc" to ".malloc".

Index: ppc-linux-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/ppc-linux-tdep.c,v
retrieving revision 1.48
diff -u -r1.48 ppc-linux-tdep.c
--- ppc-linux-tdep.c	13 Nov 2003 18:08:57 -0000	1.48
+++ ppc-linux-tdep.c	14 Nov 2003 00:40:57 -0000
@@ -1083,6 +1083,9 @@
       set_gdbarch_in_solib_call_trampoline
         (gdbarch, ppc64_in_solib_call_trampoline);
       set_gdbarch_skip_trampoline_code (gdbarch, ppc64_skip_trampoline_code);
+
+      /* PPC64 malloc's entry-point is called ".malloc".  */
+      set_gdbarch_name_of_malloc (gdbarch, ".malloc");
     }
 }
 

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