[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Testing Firefox 62 on sparc64



2018-08-09 14:50 GMT+02:00 John Paul Adrian Glaubitz
<glaubitz@physik.fu-berlin.de>:
> Did you install the debug package so we can see where it actually
> crashes in ProcessExecutableMemory.cpp?

With 62.0~b16-1 on my t5120 (tunneled X11 - dunno if it changes the
behavior), running with the dbgsym package under gdb:

#####
Thread 1 "firefox" received signal SIGBUS, Bus error.
HashIIDPtrKey (key=0xffff80010a425aec <xpt::detail::sInterfaces+30352>)
    at /build/firefox-qTMIsZ/firefox-62.0~b16/js/xpconnect/src/XPCMaps.cpp:26
26      /build/firefox-qTMIsZ/firefox-62.0~b16/js/xpconnect/src/XPCMaps.cpp:
No such file or directory.
(gdb)
(gdb) bt
#0  HashIIDPtrKey (key=0xffff80010a425aec <xpt::detail::sInterfaces+30352>)
    at /build/firefox-qTMIsZ/firefox-62.0~b16/js/xpconnect/src/XPCMaps.cpp:26
#1  0xffff80010690aed4 in PLDHashTable::ComputeKeyHash (
    aKey=0xffff80010a425aec <xpt::detail::sInterfaces+30352>,
this=0x70000440140)
    at /build/firefox-qTMIsZ/firefox-62.0~b16/xpcom/ds/PLDHashTable.cpp:586
#2  PLDHashTable::Add (this=0x70000440140,
    aKey=0xffff80010a425aec <xpt::detail::sInterfaces+30352>)
    at /build/firefox-qTMIsZ/firefox-62.0~b16/xpcom/ds/PLDHashTable.cpp:586
#3  0xffff80010701a140 in IID2NativeInterfaceMap::Add
(iface=0x700004abfa0, this=0x70000440140)
    at /build/firefox-qTMIsZ/firefox-62.0~b16/js/xpconnect/src/XPCMaps.h:245
(...)
#####

>From the source package, the relevant source bit would be:

#####
static PLDHashNumber
HashIIDPtrKey(const void* key)
{
    return HashGeneric(*((uintptr_t*)key));
}
#####
Line 26 being the return.

#####
(gdb) disassemble
Dump of assembler code for function HashIIDPtrKey(void const*):
=> 0xffff800106fe206c <+0>:     ldx  [ %o0 ], %g3
   0xffff800106fe2070 <+4>:     add  %g3, %g3, %g2
   0xffff800106fe2074 <+8>:     srlx  %g3, 0x20, %g4
   0xffff800106fe2078 <+12>:    add  %g2, %g3, %g1
(...)
(gdb) print (uintptr_t*)key
$9 = (uintptr_t *) 0xffff80010a425aec <xpt::detail::sInterfaces+30352>
#####

So, yet another function that doesn't bother to check for alignment,
it seems... that pointer is aligned on 4 bytes, but not 8.

Cordially,

-- 
Romain Dolbeau


Reply to: