[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
More info about libc/libio/gcc-3.0 static binaries
From: |
Marcus Brinkmann |
Subject: |
More info about libc/libio/gcc-3.0 static binaries |
Date: |
Mon, 7 Jan 2002 22:51:40 +0100 |
User-agent: |
Mutt/1.3.24i |
Hi,
libio enabled glibc, gcc 3.0, static binaries die in _hurd_stack_setup at
start up time. I think the code is gcc generated, probably for the vararg.
Here is the relevant debug info. I am not too familiar with that code gcc
generates for what type of function invocation etc. Maybe the vararg
requires some setup on the stack in static-start.S?
Thanks,
Marcus
Program received signal EXC_BAD_ACCESS, Could not access memory.
0x0804849b in _hurd_stack_setup (argc=0) at
../sysdeps/mach/hurd/i386/init-first.c:317
317 in ../sysdeps/mach/hurd/i386/init-first.c
(gdb) quit
The program is running. Exit anyway? (y or n) n
Not confirmed.
(gdb) info reg
eax 0x0 0
ecx 0x0 0
edx 0x0 0
ebx 0x0 0
esp 0x1000fd0 0x1000fd0
ebp 0x1000ff8 0x1000ff8
esi 0x0 0
edi 0x0 0
eip 0x804849b 0x804849b
eflags 0x10202 66050
cs 0x17 23
ss 0x1f 31
ds 0x1f 31
es 0x1f 31
fs 0x1f 31
gs 0x1f 31
fctrl 0x0 0
fstat 0x0 0
ftag 0x0 0
fiseg 0x0 0
fioff 0x0 0
foseg 0x0 0
fooff 0x0 0
fop 0x0 0
(gdb) disas $pc
Dump of assembler code for function _hurd_stack_setup:
0x8048494 <_hurd_stack_setup>: push %ebp
0x8048495 <_hurd_stack_setup+1>: mov %esp,%ebp
0x8048497 <_hurd_stack_setup+3>: push %ebx
0x8048498 <_hurd_stack_setup+4>: sub $0x24,%esp
0x804849b <_hurd_stack_setup+7>: mov 0x8(%ebp),%eax
0x804849e <_hurd_stack_setup+10>: mov %eax,0xfffffff4(%ebp)
0x80484a1 <_hurd_stack_setup+13>: mov $0x804844a,%edx
0x80484a6 <_hurd_stack_setup+18>: lea 0xffffffd8(%ebp),%eax
0x80484a9 <_hurd_stack_setup+21>: sub %eax,%edx
0x80484ab <_hurd_stack_setup+23>: lea 0xfffffff8(%ebp),%ecx
0x80484ae <_hurd_stack_setup+26>: movb $0xb9,(%eax)
0x80484b1 <_hurd_stack_setup+29>: mov %ecx,0x1(%eax)
0x80484b4 <_hurd_stack_setup+32>: movb $0xe9,0x5(%eax)
0x80484b8 <_hurd_stack_setup+36>: mov %edx,0x6(%eax)
0x80484bb <_hurd_stack_setup+39>: mov $0x80d28e0,%ebx
0x80484c0 <_hurd_stack_setup+44>: call 0x804f220 <__mach_init>
0x80484c5 <_hurd_stack_setup+49>: cmp $0x80d28f0,%ebx
0x80484cb <_hurd_stack_setup+55>: jae 0x80484dd <_hurd_stack_setup+73>
0x80484cd <_hurd_stack_setup+57>: lea 0x0(%esi),%esi
0x80484d0 <_hurd_stack_setup+60>: call *(%ebx)
0x80484d2 <_hurd_stack_setup+62>: add $0x4,%ebx
0x80484d5 <_hurd_stack_setup+65>: cmp $0x80d28f0,%ebx
0x80484db <_hurd_stack_setup+71>: jb 0x80484d0 <_hurd_stack_setup+60>
0x80484dd <_hurd_stack_setup+73>: sub $0x8,%esp
0x80484e0 <_hurd_stack_setup+76>: lea 0xffffffd8(%ebp),%eax
0x80484e3 <_hurd_stack_setup+79>: push %eax
0x80484e4 <_hurd_stack_setup+80>: lea 0xfffffff4(%ebp),%eax
0x80484e7 <_hurd_stack_setup+83>: push %eax
0x80484e8 <_hurd_stack_setup+84>: call 0x804f430 <_hurd_startup>
0x80484ed <_hurd_stack_setup+89>: mov 0xfffffffc(%ebp),%ebx
0x80484f0 <_hurd_stack_setup+92>: leave
0x80484f1 <_hurd_stack_setup+93>: ret
End of assembler dump.
(gdb) x $ebp
0x1000ff8: 0x00000000
(gdb) x
0x1000ffc: 0x080480d5
(gdb) x
0x1001000: Cannot access memory at address 0x1001000
(gdb)
0x1001004: Cannot access memory at address 0x1001004
--
`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann GNU http://www.gnu.org marcus@gnu.org
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de
- More info about libc/libio/gcc-3.0 static binaries,
Marcus Brinkmann <=