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

Reply via email to