SIGABORT on linux-sparc

Andrew Haley aph at redhat.com
Tue Apr 8 08:04:14 PDT 2008


Sébastien Bernard wrote:
> Andrew Haley a écrit :
>> Sébastien Bernard wrote:
>>  
>>> Gary Benson a écrit :
>>>    
>>>> S�bastien Bernard wrote:
>>>>  
>>>>      
>>>>> The sigbus happens in
>>>>> icedtea6/openjdk-ecj/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
>>>>> line 356.
>>>>>
>>>>> The line is :
>>>>>
>>>>>    case T_LONG:      SET_LOCALS_LONG(*(jlong *) result, 0);
>>>>>      break;
>>>>>
>>>>> The SET_LOCALS_LONG is breaking the access.
>>>>> The value of result according to gdb is  (long long int *) 0xf781c420
>>>>>             
>>>> That looks pretty aligned to me.
>>>> What does gdb say the variable "locals" is at that point?
>>>>         
>>> #7  0xf7a96a9c in CppInterpreter::native_entry (method=0xf1645128,
>>> __the_thread__=0x2ecb0)
>>>    at
>>> /home/seb/dev/icedtea6/openjdk-ecj/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:356
>>>
>>>
>>> 356           SET_LOCALS_LONG(*(jlong *) result, 0);
>>> (gdb) p (void*) locals
>>> $1 = (void *) 0xf789aa58
>>> (gdb)
>>>     
>>
>> That's pretty aligned too.  Try
>>
>> x/i $pc
>>
>> and then tell us what the contents of the address register is.
>>
>> Andrew.
>>   
> Maybe an irc channel would be better suited for that kind of debugging.

We're on #openjdk at irc.oftc.net

> Anyway, here's the info
> (gdb) up
> #7  0xf7a96a9c in CppInterpreter::native_entry (method=0xf1645128,
> __the_thread__=0x2ecb0)
>    at
> /home/seb/dev/icedtea6/openjdk-ecj/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:356
> 
> 356           SET_LOCALS_LONG(*(jlong *) result, 0);
> (gdb) x/i $pc
> 0xf7a96a9c
> <_ZN14CppInterpreter12native_entryEP13methodOopDescP6Thread+1456>:  
> std  %g2, [ %g1 + -4 ]

Eww, nasty.  

p $g1 ?  

Andrew.



More information about the distro-pkg-dev mailing list