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