Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com
Message-ID: <3FE87A1C.1020405@kaffe.org>
Date: Tue, 23 Dec 2003 18:23:40 +0100
From: Dalibor Topic <robilad@kaffe.org>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030312
MIME-Version: 1.0
To: Steve Coleman <Steve.Coleman@jhuapl.edu>
CC: cygwin@cygwin.com
Subject: Re: How to set breakpoints before mainCRTStartup?
References: <3FE341DF.90800@kaffe.org> <3FE49F02.2010904@kaffe.org> <3FE70A9A.6070005@jhuapl.edu>
In-Reply-To: <3FE70A9A.6070005@jhuapl.edu>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: by AMaViS perl-11
X-IsSubscribed: yes

Steve Coleman wrote:
> Dalibor Topic wrote:
> 
>> Dalibor Topic wrote:
>>
>>> Hi all,
>>>
>>> in my attempts to fix an ugly bug in kaffe on Cygwin, the bug I'm 
>>> trying to squish turned out to be triggered by something that happens 
>>> *before* main is called.
>>
>>
> <snip>
> 
>>> Since I'd like to know what modifes that opcode, I hope to be able to 
>>> set a breakpoint in gdb on the code that is executed before main in 
>>> Cygwin.
>>>
> Try running gdb with the "-command=<file name>" option and put a line in 
> it like "br myfunc". I have not tried this with cygwin gdb but it works 
> for me on several other OS's i use.
> 
>>> Any idea how to do that, i.e. where to put the breakpoint? Are there 
>>> some docs on what happends before main() on cygwin that I could look 
>>> up for reference while trying to hunt down this bug?
>>
>>
>>
>> It turns out that the bug happens even before mainCRTStartup.
>>
>> Has anyone seen something like that before?
> 
> 
> I have seen something like this before. If it is a C++ app then it may 
> be a constructor in a statically or golbally declared object instance. 
> The compiler should generate code to call all the global object 
> constructors for initializing these objects *before* calling main().

Thanks, but kaffe is written in C, so global constructors can't be a 
problem here. OTOH, maybe some part of Cygwin is written in C++ and may 
be responsible for the damage?

cheers,
dalibor topic


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

