On Thu, Jan 03, 2002 at 10:11:20AM -0700, [EMAIL PROTECTED] wrote: > > Not just ia64, powerpc 64 as well. You are assuming that all pointers > > are the same format when that is not guaranteed by the C standard. On > > most architectures they are the same, you can convert a function > > pointer to a void pointer and back again but it is not defined > > behaviour. > > > > On IA64 and PPC64 the function pointer does not reference the function > > itself, instead it points to a function descriptor. The function > > descriptor contains a pointer to the function code plus additional data > > such as a pointer to the global data to be used when the function is > > called. This is mandated by the architecture software ABI.
Yea, I found the ABI at: http://developer.intel.com/design/itanium/downloads/24537003.pdf It seems to be newer than the IA-64 Architecture Software Developer's Manual Volumes. > Also true for HPPA targets. I recall some of the NUMA kgdb developers going to work on the ia64 project. A number of concepts of pa-64, like stack unwinding, come from the HP precision architecture. I was wondering if their gdb work was used on the ia64 simulator. Sun's Eagle simulator is running in a modified version of gdb. So my problem was caused by the function descriptor not being visible when I printed the pointer to the function with gdb. Why isn't gdb being fixed so that the function descriptor is visible? I suppose for now I'll create a function descriptor structure and cast the function pointer to it. It seems like something that gdb should do automatically for ia64 applications. -piet _______________________________________________ Bug-gdb mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-gdb