Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Nov 2001 11:41:41 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        "PSI, Mike Smith" <mlsmith@mitre.org>
Cc:        hackers@freebsd.org
Subject:   RE: _init execs in middle of code
Message-ID:  <XFMail.011115114141.jhb@FreeBSD.org>
In-Reply-To: <3BF4185B.35A8B872@mitre.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On 15-Nov-01 PSI, Mike Smith wrote:
> Does anyone know exactly what _init is? An "nm" of my executable lists:
> 
> 080486a8 ? _init
> 
> It is the lowest numeric address (before _start and main) so I would
> assume it is some sort of program initialization code. But when trying
> to determine the cause of a kernel freeze (caused by my user app), I
> found that _init is being "called" after quite a bit of code has been
> executed.
> 
> I scanned every library known to man and of course all of my objects. I
> cannot find any symbol reference to _init anywhere so I can only guess
> it is set up by the linker. HELP! My kernel freezes (every 2nd/3rd
> execution of the program) so I can't run the debugger on the kernel.
> 
> However, the freeze condition is very repeatable (happens what appears
> to be the same point in the execution WHEN it happens) so if I can
> figure out what _init is, I may have a chance to solve this.
> 
> Also if _init isn't supposed to be called during a program running, can
> anyone give a clue as to what stupid programming error could cause this
> to happen?

IIRC, _init is when constructors for global variables are called (and _fini is
when destructors are called.)  It is magic behind the scenes generated by the
compiler and linker.

-- 

John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.011115114141.jhb>