[kaffe] More mipsel jit3

Timothy Stack stack at cs.utah.edu
Tue Mar 9 11:56:02 PST 2004


> (gdb) print *((Hjava_lang_Class *) 269223872)
> $3 = {head = {dtable = 0x10019c38, lock = 0x0}, lock = 0x0, 
>
> I think that this class is HashMap itself, but can't really tell.

Use:

  p (char *)$3.name.data

to print out the name.  There are also a lot of helpful macros in the
"developers/gdbinit" file.

> soft_anewarray should be called here with java.util.HashMap$HashEntry
> and 11. 11 appears in two registers at this stack frame: t6 (aka i14)
> and s0 (aka i16).

Looking at the CVS version of the source, it looks like i4-i7 are the 
registers used for passing arguments, so those don't seem likely...

It might be easier to just look at the output of "gcc -S" and copy what
they do.

> The only valid class that I can see in this call is
> the one above (*0x100bd4a0 looks like a valid Hjava_lang_Class
> structure, but it is completely unititialized).

You can pick through the GC data structures to figure out the correct type 
by using the "gcmem2block" macro to find the gc_block, subtracting
0x100bd4a0 from the value in the data field in the block to get the index, 
and printing the gc_block.funcs value for that index.  The "funcs" value 
is the allocation type and comes from the "gc.h" header file.

> Casey Marshall || rsdio at metastatic.org

tim




More information about the kaffe mailing list