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>