Bug#624732: xulrunner dies with sigseg on startup on powerpc

Jörg Sommer joerg at alea.gnuu.de
Sun May 1 00:36:33 UTC 2011


Package: xulrunner-2.0
Version: 2.0.1-1
Severity: normal

Hi,

simply running xulrunner-2.0 yields a segmentation fault.

There's something broken in the dynamic linking process, hence this can
also be a bug in libc6, but I've read Firefox does fancy stuff to speedup
start‐up so this can be a bug in Firefox.

At the end of the function IsArg() (nsXULRunnerApp.cpp) the execution
doesn't return to main(), but branches to _restgpr_30_x (Me doesn't know
why. Do you know?). This triggers the resolution of a symbol in a foreign
library like libevent or libstartup-notification. But after the symbol is
resolved a strange content gets loaded into the register and yields a
branch to an invalid address, that causes the sigseg.

This is the code in question from xulrunner-2.0

static PRBool IsArg(const char* arg, const char* s)
{
  if (*arg == '-')
  {
    if (*++arg == '-')
      ++arg;
    return !PL_strcasecmp(arg, s);
  }

#if defined(XP_WIN) || defined(XP_OS2)
  if (*arg == '/')
    return !PL_strcasecmp(++arg, s);
#endif

  return PR_FALSE;
}

This is the code that handles the library loading from libc6
http://www.eglibc.org/cgi-bin/viewcvs.cgi/*checkout*/trunk/libc/sysdeps/powerpc/powerpc32/dl-trampoline.S:

_dl_runtime_resolve:
	cfi_startproc
 # We need to save the registers used to pass parameters, and register 0,
 # which is used by _mcount; the registers are saved in a stack frame.
	stwu r1,-64(r1)
	cfi_adjust_cfa_offset (64)
	stw r0,12(r1)
	stw r3,16(r1)
	stw r4,20(r1)
 # The code that calls this has put parameters for `fixup' in r12 and r11.
	mr r3,r12
	stw r5,24(r1)
	mr r4,r11
	stw r6,28(r1)
	mflr r0
 # We also need to save some of the condition register fields
	stw r7,32(r1)
 # Don't clobber the caller's LRSAVE, it is needed by _mcount.
	stw r0,48(r1)
 	cfi_offset (lr, -16)
	stw r8,36(r1)
	mfcr r0
	stw r9,40(r1)
	stw r10,44(r1)
	stw r0,8(r1)
	bl _dl_fixup at local
 # 'fixup' returns the address we want to branch to.
	mtctr r3
 # Put the registers back...
	lwz r0,48(r1)
	lwz r10,44(r1)
	lwz r9,40(r1)
	mtlr r0
	lwz r8,36(r1)
	lwz r0,8(r1)
	lwz r7,32(r1)
	lwz r6,28(r1)
	mtcrf 0xFF,r0
	lwz r5,24(r1)
	lwz r4,20(r1)
	lwz r3,16(r1)
	lwz r0,12(r1)
 # ...unwind the stack frame, and jump to the PLT entry we updated.
	addi r1,r1,64
	bctr
	cfi_endproc
	.size	 _dl_runtime_resolve,.-_dl_runtime_resolve

This is a debugging session. I hope it contains any useful piece of
information. I've set breakpoints at the begin and end of the both
functions and recorded the register content at each breakpoint.

Below is more stuff from the steps between IsArg and _dl_runtime_resolve
from another session.

% xulrunner-2.0 -g -d gdb
/usr/lib/xulrunner-2.0/run-mozilla.sh -g -d gdb /usr/lib/xulrunner-2.0/xulrunner-bin
MOZILLA_FIVE_HOME=/usr/lib/xulrunner-2.0
  LD_LIBRARY_PATH=/usr/lib/xulrunner-2.0:/usr/lib/xulrunner-2.0/plugins:/usr/lib/xulrunner-2.0
DISPLAY=:0
DYLD_LIBRARY_PATH=/usr/lib/xulrunner-2.0:/usr/lib/xulrunner-2.0
     LIBRARY_PATH=/usr/lib/xulrunner-2.0:/usr/lib/xulrunner-2.0/components:/usr/lib/xulrunner-2.0
       SHLIB_PATH=/usr/lib/xulrunner-2.0:/usr/lib/xulrunner-2.0
          LIBPATH=/usr/lib/xulrunner-2.0:/usr/lib/xulrunner-2.0
       ADDON_PATH=/usr/lib/xulrunner-2.0
      MOZ_PROGRAM=/usr/lib/xulrunner-2.0/xulrunner-bin
      MOZ_TOOLKIT=
        moz_debug=1
     moz_debugger=gdb
moz_debugger_args=
/usr/bin/gdb  --args /usr/lib/xulrunner-2.0/xulrunner-bin
GNU gdb (GDB) 7.2-debian
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "powerpc-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/lib/xulrunner-2.0/xulrunner-bin...Reading symbols from /usr/lib/debug/usr/lib/xulrunner-2.0/xulrunner-bin...done.
done.
(gdb) r --version
Starting program: /usr/lib/xulrunner-2.0/xulrunner-bin --version
[Thread debugging using libthread_db enabled]

Program received signal SIGSEGV, Segmentation fault.
0x00018994 in ?? ()
(gdb) c
Continuing.

Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb) disas IsArg
Dump of assembler code for function IsArg(char const*, char const*):
   0x10001f4c <+0>:     stwu    r1,-16(r1)
   0x10001f50 <+4>:     mr      r9,r3
   0x10001f54 <+8>:     mflr    r0
   0x10001f58 <+12>:    bcl     20,4*cr7+so,0x10001f5c <IsArg(char const*, char const*)+16>
   0x10001f5c <+16>:    stw     r0,20(r1)
   0x10001f60 <+20>:    stmw    r30,8(r1)
   0x10001f64 <+24>:    mflr    r30
   0x10001f68 <+28>:    addis   r30,r30,3
   0x10001f6c <+32>:    addi    r30,r30,-16080
   0x10001f70 <+36>:    lbz     r0,0(r3)
   0x10001f74 <+40>:    li      r3,0
   0x10001f78 <+44>:    cmpwi   cr7,r0,45
   0x10001f7c <+48>:    bne     cr7,0x10001fa4 <IsArg(char const*, char const*)+88>
   0x10001f80 <+52>:    lbz     r3,1(r9)
   0x10001f84 <+56>:    addi    r0,r9,1
   0x10001f88 <+60>:    xori    r9,r3,45
   0x10001f8c <+64>:    subfic  r9,r9,0
   0x10001f90 <+68>:    addze   r9,r0
   0x10001f94 <+72>:    mr      r3,r9
   0x10001f98 <+76>:    bl      0x100138f0 <PL_strcasecmp at plt>
   0x10001f9c <+80>:    cntlzw  r3,r3
   0x10001fa0 <+84>:    rlwinm  r3,r3,27,5,31
   0x10001fa4 <+88>:    addi    r11,r1,16
   0x10001fa8 <+92>:    b       0x10013ba0 <_restgpr_30_x at plt>
End of assembler dump.
(gdb) disas _dl_runtime_resolve
Dump of assembler code for function _dl_runtime_resolve:
   0x4801581c <+0>:     stwu    r1,-64(r1)
   0x48015820 <+4>:     stw     r0,12(r1)
   0x48015824 <+8>:     stw     r3,16(r1)
   0x48015828 <+12>:    stw     r4,20(r1)
   0x4801582c <+16>:    mr      r3,r12
   0x48015830 <+20>:    stw     r5,24(r1)
   0x48015834 <+24>:    mr      r4,r11
   0x48015838 <+28>:    stw     r6,28(r1)
   0x4801583c <+32>:    mflr    r0
   0x48015840 <+36>:    stw     r7,32(r1)
   0x48015844 <+40>:    stw     r0,48(r1)
   0x48015848 <+44>:    stw     r8,36(r1)
   0x4801584c <+48>:    mfcr    r0
   0x48015850 <+52>:    stw     r9,40(r1)
   0x48015854 <+56>:    stw     r10,44(r1)
   0x48015858 <+60>:    stw     r0,8(r1)
   0x4801585c <+64>:    bl      0x4800ec80 <_dl_fixup>
   0x48015860 <+68>:    mtctr   r3
   0x48015864 <+72>:    lwz     r0,48(r1)
   0x48015868 <+76>:    lwz     r10,44(r1)
   0x4801586c <+80>:    lwz     r9,40(r1)
   0x48015870 <+84>:    mtlr    r0
   0x48015874 <+88>:    lwz     r8,36(r1)
   0x48015878 <+92>:    lwz     r0,8(r1)
   0x4801587c <+96>:    lwz     r7,32(r1)
   0x48015880 <+100>:   lwz     r6,28(r1)
   0x48015884 <+104>:   mtcr    r0
   0x48015888 <+108>:   lwz     r5,24(r1)
   0x4801588c <+112>:   lwz     r4,20(r1)
   0x48015890 <+116>:   lwz     r3,16(r1)
   0x48015894 <+120>:   lwz     r0,12(r1)
   0x48015898 <+124>:   addi    r1,r1,64
   0x4801589c <+128>:   bctr
End of assembler dump.
(gdb) b *IsArg
Breakpoint 1 at 0x10001f4c: file ../../../xulrunner/app/nsXULRunnerApp.cpp, line 110.
(gdb) b *IsArg+88
Breakpoint 2 at 0x10001fa4: file ../../../xulrunner/app/nsXULRunnerApp.cpp, line 124.
(gdb) b _dl_runtime_resolve
Breakpoint 3 at 0x48015820: file ../sysdeps/powerpc/powerpc32/dl-trampoline.S, line 32.
(gdb) b *_dl_runtime_resolve+124
Breakpoint 4 at 0x48015898: file ../sysdeps/powerpc/powerpc32/dl-trampoline.S, line 69.
(gdb) dis 3 4
(gdb) r
Starting program: /usr/lib/xulrunner-2.0/xulrunner-bin --version
[Thread debugging using libthread_db enabled]

Breakpoint 1, IsArg (arg=0xbffff6b8 "--version", s=0x100143a0 "h")
    at ../../../xulrunner/app/nsXULRunnerApp.cpp:110
110     ../../../xulrunner/app/nsXULRunnerApp.cpp: Datei oder Verzeichnis nicht gefunden.
        in ../../../xulrunner/app/nsXULRunnerApp.cpp
(gdb) bt
#0  IsArg (arg=0xbffff6b8 "--version", s=0x100143a0 "h") at ../../../xulrunner/app/nsXULRunnerApp.cpp:110
#1  0x10002230 in main (argc=2, argv=0xbffff504) at ../../../xulrunner/app/nsXULRunnerApp.cpp:289
(gdb) i r
r0             0xe78363c        242759228
r1             0xbfffe210       3221217808
r2             0x4804dff0       1208279024
r3             0xbffff6b8       3221223096
r4             0x100143a0       268518304
r5             0xbffff510       3221222672
r6             0xbffff5a8       3221222824
r7             0x0      0
r8             0x49     73
r9             0x48046b50       1208249168
r10            0x4821e890       1210181776
r11            0xe8e1934        244193588
r12            0x4a     74
r13            0x1002e660       268625504
r14            0x0      0
r15            0x0      0
r16            0x0      0
r17            0x0      0
r18            0x0      0
r19            0x0      0
r20            0x0      0
r21            0x0      0
r22            0x0      0
r23            0x0      0
r24            0x0      0
r25            0x0      0
r26            0x0      0
r27            0x4802152c       1208096044
r28            0xbffff504       3221222660
r29            0xbffff508       3221222664
r30            0x1002e08c       268624012
r31            0x2      2
pc             0x10001f4c       0x10001f4c <IsArg(char const*, char const*)>
msr            0x2d932  186674
cr             0x22000884       570427524
lr             0x10002230       0x10002230 <main(int, char**)+64>
ctr            0x100021f0       268444144
xer            0x0      0
orig_r3        0xea885d4        245925332
trap           0x700    1792
(gdb) c
Continuing.

Breakpoint 2, IsArg (arg=<value optimized out>, s=<value optimized out>)
    at ../../../xulrunner/app/nsXULRunnerApp.cpp:124
124     in ../../../xulrunner/app/nsXULRunnerApp.cpp
(gdb) bt
#0  IsArg (arg=<value optimized out>, s=<value optimized out>) at ../../../xulrunner/app/nsXULRunnerApp.cpp:124
#1  0x10002230 in main (argc=2, argv=0xbffff504) at ../../../xulrunner/app/nsXULRunnerApp.cpp:289
(gdb) i r
r0             0x10001f9c       268443548
r1             0xbfffe200       3221217792
r2             0x4804dff0       1208279024
r3             0x0      0
r4             0x100143a0       268518304
r5             0xbffff510       3221222672
r6             0xbffff5a8       3221222824
r7             0x0      0
r8             0x49     73
r9             0xbffff6ba       3221223098
r10            0x76     118
r11            0xeb2db8c        246602636
r12            0x22000882       570427522
r13            0x1002e660       268625504
r14            0x0      0
r15            0x0      0
r16            0x0      0
r17            0x0      0
r18            0x0      0
r19            0x0      0
r20            0x0      0
r21            0x0      0
r22            0x0      0
r23            0x0      0
r24            0x0      0
r25            0x0      0
r26            0x0      0
r27            0x4802152c       1208096044
r28            0xbffff504       3221222660
r29            0xbffff508       3221222664
r30            0x1002e08c       268624012
r31            0x2      2
pc             0x10001fa4       0x10001fa4 <IsArg(char const*, char const*)+88>
msr            0x2d932  186674
cr             0x82000884       2181040260
lr             0x10001f9c       0x10001f9c <IsArg(char const*, char const*)+80>
ctr            0xeb2b580        246592896
xer            0x20000000       536870912
orig_r3        0xea885d4        245925332
trap           0x700    1792
(gdb) en 3 4
(gdb) si
0x10001fa8      124     in ../../../xulrunner/app/nsXULRunnerApp.cpp
(gdb) i r
r0             0x10001f9c       268443548
r1             0xbfffe200       3221217792
r2             0x4804dff0       1208279024
r3             0x0      0
r4             0x100143a0       268518304
r5             0xbffff510       3221222672
r6             0xbffff5a8       3221222824
r7             0x0      0
r8             0x49     73
r9             0xbffff6ba       3221223098
r10            0x76     118
r11            0xbfffe210       3221217808
r12            0x22000882       570427522
r13            0x1002e660       268625504
r14            0x0      0
r15            0x0      0
r16            0x0      0
r17            0x0      0
r18            0x0      0
r19            0x0      0
r20            0x0      0
r21            0x0      0
r22            0x0      0
r23            0x0      0
r24            0x0      0
r25            0x0      0
r26            0x0      0
r27            0x4802152c       1208096044
r28            0xbffff504       3221222660
r29            0xbffff508       3221222664
r30            0x1002e08c       268624012
r31            0x2      2
pc             0x10001fa8       0x10001fa8 <IsArg(char const*, char const*)+92>
msr            0xd932   55602
cr             0x82000884       2181040260
lr             0x10001f9c       0x10001f9c <IsArg(char const*, char const*)+80>
ctr            0xeb2b580        246592896
xer            0x20000000       536870912
orig_r3        0xea885d4        245925332
trap           0xd00    3328
(gdb) c
Continuing.

Breakpoint 3, _dl_runtime_resolve () at ../sysdeps/powerpc/powerpc32/dl-trampoline.S:32
32      ../sysdeps/powerpc/powerpc32/dl-trampoline.S: Datei oder Verzeichnis nicht gefunden.
        in ../sysdeps/powerpc/powerpc32/dl-trampoline.S
(gdb) bt
#0  _dl_runtime_resolve () at ../sysdeps/powerpc/powerpc32/dl-trampoline.S:32
#1  0x10001f9c in IsArg (arg=<value optimized out>, s=<value optimized out>)
    at ../../../xulrunner/app/nsXULRunnerApp.cpp:115
#2  0x10002230 in main (argc=2, argv=0xbffff504) at ../../../xulrunner/app/nsXULRunnerApp.cpp:289
(gdb) i r
r0             0x220    544
r1             0xbfffe1c0       3221217728
r2             0x4804dff0       1208279024
r3             0x0      0
r4             0x100143a0       268518304
r5             0xbffff510       3221222672
r6             0xbffff5a8       3221222824
r7             0x0      0
r8             0x49     73
r9             0xbffff6ba       3221223098
r10            0x76     118
r11            0x330    816
r12            0x480228e8       1208101096
r13            0x1002e660       268625504
r14            0x0      0
r15            0x0      0
r16            0x0      0
r17            0x0      0
r18            0x0      0
r19            0x0      0
r20            0x0      0
r21            0x0      0
r22            0x0      0
r23            0x0      0
r24            0x0      0
r25            0x0      0
r26            0x0      0
r27            0x4802152c       1208096044
r28            0xbffff504       3221222660
r29            0xbffff508       3221222664
r30            0x1002e08c       268624012
r31            0x2      2
pc             0x48015820       0x48015820 <_dl_runtime_resolve+4>
msr            0x2d932  186674
cr             0x82000884       2181040260
lr             0x10001f9c       0x10001f9c <IsArg(char const*, char const*)+80>
ctr            0x4801581c       1208047644
xer            0x20000000       536870912
orig_r3        0xea885d4        245925332
trap           0x700    1792
(gdb) c
Continuing.

Breakpoint 4, _dl_runtime_resolve () at ../sysdeps/powerpc/powerpc32/dl-trampoline.S:69
69      in ../sysdeps/powerpc/powerpc32/dl-trampoline.S
(gdb) bt
#0  _dl_runtime_resolve () at ../sysdeps/powerpc/powerpc32/dl-trampoline.S:69
#1  0x10001f9c in IsArg (arg=<value optimized out>, s=<value optimized out>)
    at ../../../xulrunner/app/nsXULRunnerApp.cpp:115
#2  0x10002230 in main (argc=2, argv=0xbffff504) at ../../../xulrunner/app/nsXULRunnerApp.cpp:289
(gdb) i r
r0             0x220    544
r1             0xbfffe1c0       3221217728
r2             0x4804dff0       1208279024
r3             0x0      0
r4             0x100143a0       268518304
r5             0xbffff510       3221222672
r6             0xbffff5a8       3221222824
r7             0x0      0
r8             0x49     73
r9             0xbffff6ba       3221223098
r10            0x76     118
r11            0xdd49ec4        232038084
r12            0x22000882       570427522
r13            0x1002e660       268625504
r14            0x0      0
r15            0x0      0
r16            0x0      0
r17            0x0      0
r18            0x0      0
r19            0x0      0
r20            0x0      0
r21            0x0      0
r22            0x0      0
r23            0x0      0
r24            0x0      0
r25            0x0      0
r26            0x0      0
r27            0x4802152c       1208096044
r28            0xbffff504       3221222660
r29            0xbffff508       3221222664
r30            0x1002e08c       268624012
r31            0x2      2
pc             0x48015898       0x48015898 <_dl_runtime_resolve+124>
msr            0x2d932  186674
cr             0x82000884       2181040260
lr             0x10001f9c       0x10001f9c <IsArg(char const*, char const*)+80>
ctr            0xdd60994        232130964
xer            0x20000000       536870912
orig_r3        0xea885d4        245925332
trap           0x700    1792
(gdb) si
_dl_runtime_resolve () at ../sysdeps/powerpc/powerpc32/dl-trampoline.S:70
70      in ../sysdeps/powerpc/powerpc32/dl-trampoline.S
(gdb) i r
r0             0x220    544
r1             0xbfffe200       3221217792
r2             0x4804dff0       1208279024
r3             0x0      0
r4             0x100143a0       268518304
r5             0xbffff510       3221222672
r6             0xbffff5a8       3221222824
r7             0x0      0
r8             0x49     73
r9             0xbffff6ba       3221223098
r10            0x76     118
r11            0xdd49ec4        232038084
r12            0x22000882       570427522
r13            0x1002e660       268625504
r14            0x0      0
r15            0x0      0
r16            0x0      0
r17            0x0      0
r18            0x0      0
r19            0x0      0
r20            0x0      0
r21            0x0      0
r22            0x0      0
r23            0x0      0
r24            0x0      0
r25            0x0      0
r26            0x0      0
r27            0x4802152c       1208096044
r28            0xbffff504       3221222660
r29            0xbffff508       3221222664
r30            0x1002e08c       268624012
r31            0x2      2
pc             0x4801589c       0x4801589c <_dl_runtime_resolve+128>
msr            0xd932   55602
cr             0x82000884       2181040260
lr             0x10001f9c       0x10001f9c <IsArg(char const*, char const*)+80>
ctr            0xdd60994        232130964
xer            0x20000000       536870912
orig_r3        0xea885d4        245925332
trap           0xd00    3328
(gdb) si
0x0dd60994 in _restgpr_30_x () from /usr/lib/libevent-1.4.so.2
(gdb) bt
#0  0x0dd60994 in _restgpr_30_x () from /usr/lib/libevent-1.4.so.2
#1  0x10001f9c in IsArg (arg=<value optimized out>, s=<value optimized out>)
    at ../../../xulrunner/app/nsXULRunnerApp.cpp:115
#2  0x10002230 in main (argc=2, argv=0xbffff504) at ../../../xulrunner/app/nsXULRunnerApp.cpp:289
(gdb) disas
Dump of assembler code for function _restgpr_30_x:
=> 0x0dd60994 <+0>:     lwz     r30,-8(r11)
   0x0dd60998 <+0>:     lwz     r0,4(r11)
   0x0dd6099c <+4>:     lwz     r31,-4(r11)
   0x0dd609a0 <+8>:     mtlr    r0
   0x0dd609a4 <+12>:    mr      r1,r11
   0x0dd609a8 <+16>:    blr
End of assembler dump.
(gdb) si
0x0dd60998 in _restgpr_31_x () from /usr/lib/libevent-1.4.so.2
(gdb) 
0x0dd6099c in _restgpr_31_x () from /usr/lib/libevent-1.4.so.2
(gdb) 
0x0dd609a0 in _restgpr_31_x () from /usr/lib/libevent-1.4.so.2
(gdb) 
0x0dd609a4 in _restgpr_31_x () from /usr/lib/libevent-1.4.so.2
(gdb) 
0x0dd609a8 in _restgpr_31_x () from /usr/lib/libevent-1.4.so.2
(gdb) 
Cannot access memory at address 0x15b3
(gdb) i r
r0             0x18994  100756
r1             0xdd49ec4        232038084
r2             0x4804dff0       1208279024
r3             0x0      0
r4             0x100143a0       268518304
r5             0xbffff510       3221222672
r6             0xbffff5a8       3221222824
r7             0x0      0
r8             0x49     73
r9             0xbffff6ba       3221223098
r10            0x76     118
r11            0xdd49ec4        232038084
r12            0x22000882       570427522
r13            0x1002e660       268625504
r14            0x0      0
r15            0x0      0
r16            0x0      0
r17            0x0      0
r18            0x0      0
r19            0x0      0
r20            0x0      0
r21            0x0      0
r22            0x0      0
r23            0x0      0
r24            0x0      0
r25            0x0      0
r26            0x0      0
r27            0x4802152c       1208096044
r28            0xbffff504       3221222660
r29            0xbffff508       3221222664
r30            0x70     112
r31            0x1200000b       301989899
pc             0x18994  0x18994
msr            0xd932   55602
cr             0x82000884       2181040260
lr             0x18994  0x18994
ctr            0xdd60994        232130964
xer            0x20000000       536870912
orig_r3        0xea885d4        245925332
trap           0xd00    3328

More stuff from the intermediate steps from IsArg to _dl_runtime_resolve.

IsArg
_restgpr_30_x at plt
__glink
__glink_PLTresolve
_dl_runtime_resolve

(gdb) si
0x10013ba0 in _restgpr_30_x at plt ()
(gdb) bt
#0  0x10013ba0 in _restgpr_30_x at plt ()
#1  0x10001f9c in IsArg (arg=<value optimized out>, s=<value optimized out>)
    at ../../../xulrunner/app/nsXULRunnerApp.cpp:115
#2  0x10002230 in main (argc=2, argv=0xbffff504) at ../../../xulrunner/app/nsXULRunnerApp.cpp:289
(gdb) disas
Dump of assembler code for function _restgpr_30_x at plt:
=> 0x10013ba0 <+0>:     lis     r11,4098
   0x10013ba4 <+4>:     lwz     r11,25924(r11)
   0x10013ba8 <+8>:     mtctr   r11
   0x10013bac <+12>:    bctr
End of assembler dump.
(gdb) si
0x10013ba4 in _restgpr_30_x at plt ()
(gdb) 
0x10013ba8 in _restgpr_30_x at plt ()
(gdb) 
0x10013bac in _restgpr_30_x at plt ()
(gdb) 
0x10013f90 in __glink ()
(gdb) disas
Dump of assembler code for function __glink:
   0x10013e80 <+0>:     b       0x10014050 <__glink_PLTresolve>
   0x10013e84 <+4>:     b       0x10014050 <__glink_PLTresolve>
   0x10013e88 <+8>:     b       0x10014050 <__glink_PLTresolve>
   0x10013e8c <+12>:    b       0x10014050 <__glink_PLTresolve>
   0x10013e90 <+16>:    b       0x10014050 <__glink_PLTresolve>
   0x10013e94 <+20>:    b       0x10014050 <__glink_PLTresolve>
   0x10013e98 <+24>:    b       0x10014050 <__glink_PLTresolve>
   0x10013e9c <+28>:    b       0x10014050 <__glink_PLTresolve>
   0x10013ea0 <+32>:    b       0x10014050 <__glink_PLTresolve>
   0x10013ea4 <+36>:    b       0x10014050 <__glink_PLTresolve>
   0x10013ea8 <+40>:    b       0x10014050 <__glink_PLTresolve>
   0x10013eac <+44>:    b       0x10014050 <__glink_PLTresolve>
   0x10013eb0 <+48>:    b       0x10014050 <__glink_PLTresolve>
   0x10013eb4 <+52>:    b       0x10014050 <__glink_PLTresolve>
   0x10013eb8 <+56>:    b       0x10014050 <__glink_PLTresolve>
   0x10013ebc <+60>:    b       0x10014050 <__glink_PLTresolve>
   0x10013ec0 <+64>:    b       0x10014050 <__glink_PLTresolve>
   0x10013ec4 <+68>:    b       0x10014050 <__glink_PLTresolve>
   0x10013ec8 <+72>:    b       0x10014050 <__glink_PLTresolve>
   0x10013ecc <+76>:    b       0x10014050 <__glink_PLTresolve>
   0x10013ed0 <+80>:    b       0x10014050 <__glink_PLTresolve>
   0x10013ed4 <+84>:    b       0x10014050 <__glink_PLTresolve>
   0x10013ed8 <+88>:    b       0x10014050 <__glink_PLTresolve>
   0x10013edc <+92>:    b       0x10014050 <__glink_PLTresolve>
   0x10013ee0 <+96>:    b       0x10014050 <__glink_PLTresolve>
   0x10013ee4 <+100>:   b       0x10014050 <__glink_PLTresolve>
   0x10013ee8 <+104>:   b       0x10014050 <__glink_PLTresolve>
   0x10013eec <+108>:   b       0x10014050 <__glink_PLTresolve>
   0x10013ef0 <+112>:   b       0x10014050 <__glink_PLTresolve>
   0x10013ef4 <+116>:   b       0x10014050 <__glink_PLTresolve>
   0x10013ef8 <+120>:   b       0x10014050 <__glink_PLTresolve>
   0x10013efc <+124>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f00 <+128>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f04 <+132>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f08 <+136>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f0c <+140>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f10 <+144>:   b       0x10014050 <__glink_PLTresolve>
---Type <return> to continue, or q <return> to quit---
   0x10013f14 <+148>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f18 <+152>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f1c <+156>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f20 <+160>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f24 <+164>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f28 <+168>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f2c <+172>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f30 <+176>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f34 <+180>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f38 <+184>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f3c <+188>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f40 <+192>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f44 <+196>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f48 <+200>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f4c <+204>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f50 <+208>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f54 <+212>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f58 <+216>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f5c <+220>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f60 <+224>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f64 <+228>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f68 <+232>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f6c <+236>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f70 <+240>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f74 <+244>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f78 <+248>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f7c <+252>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f80 <+256>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f84 <+260>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f88 <+264>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f8c <+268>:   b       0x10014050 <__glink_PLTresolve>
=> 0x10013f90 <+272>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f94 <+276>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f98 <+280>:   b       0x10014050 <__glink_PLTresolve>
   0x10013f9c <+284>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fa0 <+288>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fa4 <+292>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fa8 <+296>:   b       0x10014050 <__glink_PLTresolve>
---Type <return> to continue, or q <return> to quit---
   0x10013fac <+300>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fb0 <+304>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fb4 <+308>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fb8 <+312>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fbc <+316>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fc0 <+320>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fc4 <+324>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fc8 <+328>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fcc <+332>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fd0 <+336>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fd4 <+340>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fd8 <+344>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fdc <+348>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fe0 <+352>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fe4 <+356>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fe8 <+360>:   b       0x10014050 <__glink_PLTresolve>
   0x10013fec <+364>:   b       0x10014050 <__glink_PLTresolve>
   0x10013ff0 <+368>:   b       0x10014050 <__glink_PLTresolve>
   0x10013ff4 <+372>:   b       0x10014050 <__glink_PLTresolve>
   0x10013ff8 <+376>:   b       0x10014050 <__glink_PLTresolve>
   0x10013ffc <+380>:   b       0x10014050 <__glink_PLTresolve>
   0x10014000 <+384>:   b       0x10014050 <__glink_PLTresolve>
   0x10014004 <+388>:   b       0x10014050 <__glink_PLTresolve>
   0x10014008 <+392>:   b       0x10014050 <__glink_PLTresolve>
   0x1001400c <+396>:   b       0x10014050 <__glink_PLTresolve>
   0x10014010 <+400>:   b       0x10014050 <__glink_PLTresolve>
   0x10014014 <+404>:   b       0x10014050 <__glink_PLTresolve>
   0x10014018 <+408>:   b       0x10014050 <__glink_PLTresolve>
   0x1001401c <+412>:   b       0x10014050 <__glink_PLTresolve>
   0x10014020 <+416>:   b       0x10014050 <__glink_PLTresolve>
   0x10014024 <+420>:   b       0x10014050 <__glink_PLTresolve>
   0x10014028 <+424>:   b       0x10014050 <__glink_PLTresolve>
   0x1001402c <+428>:   b       0x10014050 <__glink_PLTresolve>
   0x10014030 <+432>:   nop
   0x10014034 <+436>:   nop
   0x10014038 <+440>:   nop
   0x1001403c <+444>:   nop
   0x10014040 <+448>:   nop
---Type <return> to continue, or q <return> to quit---
   0x10014044 <+452>:   nop
   0x10014048 <+456>:   nop
   0x1001404c <+460>:   nop
End of assembler dump.
(gdb) si
0x10014050 in __glink_PLTresolve ()
(gdb) disas
Dump of assembler code for function __glink_PLTresolve:
=> 0x10014050 <+0>:     lis     r12,4098
   0x10014054 <+4>:     addis   r11,r11,-4097
   0x10014058 <+8>:     lwz     r0,25644(r12)
   0x1001405c <+12>:    addi    r11,r11,-16000
   0x10014060 <+16>:    mtctr   r0
   0x10014064 <+20>:    add     r0,r11,r11
   0x10014068 <+24>:    lwz     r12,25648(r12)
   0x1001406c <+28>:    add     r11,r0,r11
   0x10014070 <+32>:    bctr
   0x10014074 <+36>:    nop
   0x10014078 <+40>:    nop
   0x1001407c <+44>:    nop
   0x10014080 <+48>:    nop
   0x10014084 <+52>:    nop
   0x10014088 <+56>:    nop
   0x1001408c <+60>:    nop
End of assembler dump.
(gdb) si 8
0x10014070 in __glink_PLTresolve ()
(gdb) x /i $pc
=> 0x10014070 <__glink_PLTresolve+32>:  bctr
(gdb) display/i $pc
1: x/i $pc
=> 0x10014070 <__glink_PLTresolve+32>:  bctr
(gdb) si
_dl_runtime_resolve () at ../sysdeps/powerpc/powerpc32/dl-trampoline.S:30
30      ../sysdeps/powerpc/powerpc32/dl-trampoline.S: Datei oder Verzeichnis nicht gefunden.
        in ../sysdeps/powerpc/powerpc32/dl-trampoline.S
1: x/i $pc
=> 0x4801581c <_dl_runtime_resolve>:    stwu    r1,-64(r1)
(gdb) x 0x10013f90
   0x10013f90 <__glink+272>:    b       0x10014050 <__glink_PLTresolve>
(gdb) i b
Num     Type           Disp Enb Address    What
1       breakpoint     keep y   0x10001f4c in IsArg(char const*, char const*)
                                       at ../../../xulrunner/app/nsXULRunnerApp.cpp:110
        breakpoint already hit 1 time
2       breakpoint     keep y   0x10001fa4 in IsArg(char const*, char const*)
                                       at ../../../xulrunner/app/nsXULRunnerApp.cpp:124
        breakpoint already hit 1 time
3       breakpoint     keep y   0x48015820 ../sysdeps/powerpc/powerpc32/dl-trampoline.S:32
        breakpoint already hit 2 times
4       breakpoint     keep y   0x48015898 ../sysdeps/powerpc/powerpc32/dl-trampoline.S:69
        breakpoint already hit 2 times
(gdb) c
Continuing.

Breakpoint 3, _dl_runtime_resolve () at ../sysdeps/powerpc/powerpc32/dl-trampoline.S:32
32      in ../sysdeps/powerpc/powerpc32/dl-trampoline.S
1: x/i $pc
=> 0x48015820 <_dl_runtime_resolve+4>:  stw     r0,12(r1)
(gdb) c
Continuing.

Bye, Jörg

-- System Information:
Debian Release: unstable/experimental
  APT prefers unstable
  APT policy: (900, 'unstable'), (700, 'experimental')
Architecture: powerpc (ppc)

Kernel: Linux 2.6.39-rc3.ledtest-00228-gd733ed6-dirty
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages xulrunner-2.0 depends on:
ii  libasound2       1.0.23-3                shared library for ALSA applicatio
ii  libatk1.0-0      2.0.0-1                 The ATK accessibility toolkit
ii  libbz2-1.0       1.0.5-6                 high-quality block-sorting file co
ii  libc6            2.11.2-11               Embedded GNU C Library: Shared lib
ii  libcairo2        1.10.2-6                The Cairo 2D vector graphics libra
ii  libdbus-1-3      1.4.8-3                 simple interprocess messaging syst
ii  libevent-1.4-2   1.4.13-stable-1         An asynchronous event notification
ii  libfontconfig1   2.8.0-2.2               generic font configuration library
ii  libfreetype6     2.4.4-1                 FreeType 2 font engine, shared lib
ii  libgcc1          1:4.6.0-6               GCC support library
ii  libgdk-pixbuf2.0 2.23.3-3                GDK Pixbuf library
ii  libglib2.0-0     2.28.6-1                The GLib library of C routines
ii  libgtk2.0-0      2.24.4-3                The GTK+ graphical user interface 
ii  libhunspell-1.2- 1.2.14-4                spell checker and morphological an
ii  libjpeg62        6b1-1                   The Independent JPEG Group's JPEG 
ii  libmozjs4d       2.0.1-1                 The Mozilla SpiderMonkey JavaScrip
ii  libnspr4-0d      4.8.7-2                 NetScape Portable Runtime Library
ii  libnss3-1d       3.12.9.with.ckbi.1.82-1 Network Security Service libraries
ii  libpango1.0-0    1.28.3-6                Layout and rendering of internatio
ii  libpixman-1-0    0.21.4-2                pixel-manipulation library for X a
ii  libreadline6     6.1-3                   GNU readline and history libraries
ii  libsqlite3-0     3.7.6.2-1               SQLite 3 shared library
ii  libstartup-notif 0.10-1                  library for program launch feedbac
ii  libstdc++6       4.6.0-6                 The GNU Standard C++ Library v3
ii  libvpx0          0.9.6-1                 VP8 video codec (shared library)
ii  libx11-6         2:1.4.3-1               X11 client-side library
ii  libxext6         2:1.2.0-2               X11 miscellaneous extension librar
ii  libxrender1      1:0.9.6-1               X Rendering Extension client libra
ii  libxt6           1:1.1.1-1               X11 toolkit intrinsics library
ii  zlib1g           1:1.2.5.dfsg-1          compression library - runtime

xulrunner-2.0 recommends no packages.

Versions of packages xulrunner-2.0 suggests:
pn  libcanberra0                  <none>     (no description available)
ii  libdbus-glib-1-2              0.92-1     simple interprocess messaging syst
ii  libgconf2-4                   2.28.1-6   GNOME configuration database syste
ii  libgnomeui-0                  2.24.3-1   The GNOME libraries (User Interfac
ii  libgnomevfs2-0                1:2.24.4-1 GNOME Virtual File System (runtime
pn  libnotify1                    <none>     (no description available)
pn  libnotify1-gtk2.10            <none>     (no description available)

-- no debconf information
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature http://en.wikipedia.org/wiki/OpenPGP
URL: <http://lists.alioth.debian.org/pipermail/pkg-mozilla-maintainers/attachments/20110501/5c3df47d/attachment-0001.pgp>


More information about the pkg-mozilla-maintainers mailing list