Comment #3 on issue 127646 by
nap.zhou...@gmail.com: Segmentation fault on
start
http://code.google.com/p/chromium/issues/detail?id=127646
I traced this problem. It seems to crash before entering main().
(gdb) r
Starting program:
/home/joeyu/lin001/src/arm/chromium.r147179/src/out/Debug/chrome
[Thread debugging using libthread_db enabled]
Program received signal SIGSEGV, Segmentation fault.
0x00634018 in ?? ()
(gdb) where
#0 0x00634018 in ?? ()
#1 0x4616ae5a in __libc_csu_init ()
#2 0x49461bf8 in __libc_start_main (main=0x40638aa8 <main(int, char
const**)>, argc=1, ubp_av=0xbefff334, init=0x4616ae45 <__libc_csu_init+1>,
fini=0x4616ae89 <__libc_csu_fini+1>, rtld_fini=0x48c3bb59,
stack_end=0xbefff334) at libc-start.c:185
#3 0x40638a1a in _start ()
(gdb) x 0x00634018
0x634018: Cannot access memory at address 0x634018
(gdb) disassemble 0x00634018
No function contains specified address.
(gdb) list
8 // windows, this does nothing but load chrome.dll and invoke its entry
point in
9 // order to make it easy to update the app from GoogleUpdate. We don't
need
10 // that extra layer with on linux.
11
12 extern "C" {
13 int ChromeMain(int argc, const char** argv);
14 }
15
16 int main(int argc, const char** argv) {
17 return ChromeMain(argc, argv);
(gdb) disassemble 0x4616ae5a
Dump of assembler code for function __libc_csu_init:
0x4616ae44 <+0>: stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
0x4616ae48 <+4>: mov r6, r0
0x4616ae4a <+6>: ldr.w r9, [pc, #52] ; 0x4616ae80 <__libc_csu_init+60>
0x4616ae4e <+10>: mov r7, r1
0x4616ae50 <+12>: ldr r5, [pc, #48] ; (0x4616ae84 <__libc_csu_init+64>)
0x4616ae52 <+14>: mov r8, r2
0x4616ae54 <+16>: add r9, pc
0x4616ae56 <+18>: blx 0x4616b668
0x4616ae5a <+22>: add r5, pc
0x4616ae5c <+24>: rsb r9, r5, r9
0x4616ae60 <+28>: movs.w r9, r9, asr #2
0x4616ae64 <+32>: beq.n 0x4616ae7a <__libc_csu_init+54>
0x4616ae66 <+34>: movs r4, #0
0x4616ae68 <+36>: ldr.w r3, [r5], #4
0x4616ae6c <+40>: mov r0, r6
0x4616ae6e <+42>: mov r1, r7
0x4616ae70 <+44>: mov r2, r8
0x4616ae72 <+46>: adds r4, #1
0x4616ae74 <+48>: blx r3
0x4616ae76 <+50>: cmp r4, r9
0x4616ae78 <+52>: bne.n 0x4616ae68 <__libc_csu_init+36>
0x4616ae7a <+54>: ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
0x4616ae7e <+58>: nop
0x4616ae80 <+60>: rsbseq r0, r3, #-1073741814 ; 0xc000000a
0x4616ae84 <+64>: rsbseq r0, r3, #-2147483637 ; 0x8000000b
End of assembler dump.
(gdb) (gdb) info register
r0 0x1 1
r1 0xbefff334
3204444980
r2 0xbefff33c
3204444988
r3 0x49529b80 1230150528
r4 0x4616ae45 1175891525
r5 0x273012e 41091374
r6 0x1 1
r7 0xbefff334
3204444980
r8 0xbefff33c
3204444988
r9 0x4889b104 1216983300
r10 0x48bf93f4 1220514804
r11 0x0 0
r12 0x0 0
sp 0xbefff1c8 0xbefff1c8
lr 0x4616ae5b 1175891547
pc 0x634018 0x634018
cpsr 0x600f0130 1611596080