This is the mail archive of the gdb@sourceware.cygnus.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Small problem


In article <npd7ygykk5.fsf@zwingli.cygnus.com>,
Jim Blandy <jimb@cygnus.com> writes:

> Do you mean, where does the kernel put the environment variables when
> it exec's a new file?  That's usually specified by the ABI.  SCO's web
> site has the ABI that Linux seems to follow.  I'm still learning my
> way around Linux at that level, so I wouldn't be able to tell you
> whether and where Linux practice deviates from what's described in
> SCO's documents.

Linux/i386/ELF stores the environment variables at the top of the
memory, directly below the filename and before the arguments.  

main(int ac, char **av, char **env)
{
        printf("%p\n", env);
}
fred:~% ./T
0xbffff93c

Memory mapped above 0xbfffffff is used by the kernel, some later versions
of Linux have a config option to move this border to support machines with
>2GB of memory.

BTW, I have a question too: is it possible to tell gdb to reread the
core file? I use gdb vmlinux /proc/kcore_elf to read some kernel variables,
but I ATM always restart it to get new values :/

-Andi


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]