SIGABORT on linux-sparc
Sébastien Bernard
seb at frankengul.org
Tue Apr 8 14:01:53 PDT 2008
Andrew Haley a écrit :
> 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.
(gdb) x locals
0xf789aa58: 0xf789aaa4
(gdb) p/x $g1
$3 = 0xf789aa58
(gdb) x $g1
0xf789aa58: Cannot access memory at address 0xf789aa58
Seb
More information about the distro-pkg-dev
mailing list