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
Date: Tue, 18 Jun 2002 16:17:29 -0400
From: Jason Tishler <jason@tishler.net>
Subject: Re: Rebase 1.5-1: Causes invalid page fault
In-reply-to: <20020618182158.91025.qmail@web21001.mail.yahoo.com>
To: Nicholas Wourms <nwourms@yahoo.com>
Cc: cygwin@cygwin.com
Mail-followup-to: Nicholas Wourms <nwourms@yahoo.com>, cygwin@cygwin.com
Message-id: <20020618201729.GB2064@tishler.net>
MIME-version: 1.0
Content-type: text/plain; charset=us-ascii
Content-transfer-encoding: 7BIT
Content-disposition: inline
User-Agent: Mutt/1.4i
References: <20020618170601.GI1568@tishler.net>
 <20020618182158.91025.qmail@web21001.mail.yahoo.com>

Nicholas,

On Tue, Jun 18, 2002 at 11:21:58AM -0700, Nicholas Wourms wrote:
> $ rebase -d -b 0x68000000 -o 0x10000 cygXpm-X4.dll cygXpm-noX4.dll
> C:\Cygnus\cygwin\bin\cygXpm-X4.dll: new base = 67ff0000, new size = 10000 
> C:\Cygnus\cygwin\bin\cygXpm-noX4.dll: new base = 67fe0000, new size = 10000

DLLs that get corrupted seem to display the expected output anyway.
Sigh...

> 2)I run it on cygXpm-X4.dll cygXpm-noX4.dll cygbz21.0.dll, and it
> pagefaults.
> 
> 3)I run it on cygbz21.0.dll alone and it pagefaults.
> 
> Now here's the *Interesting part*
> 
> 4)I run file on all three and the results are:
> 
> $ file cygXpm-X4.dll
> cygXpm-X4.dll: MS-DOS executable (EXE), OS/2 or MS Windows
> $ file cygXpm-noX4.dll
> cygXpm-noX4.dll: MS-DOS executable (EXE), OS/2 or MS Windows
> $ file cygbz21.0.dll
> cygbz21.0.dll: MS Windows PE Intel 80386 console DLL

You can also try objdump to test for corruption too:

    $ objdump -p cygcurl-2.dll
    objdump: cygcurl-2.dll: File format not recognized

> So it "works" on the dll's you say are corrupted but it won't work on the
> other dll's which are intact.

Maybe the two outcomes go through different code paths in ReBaseImage()?

> Now how did these dll's get corrupted in the first place is beyond me.

Maybe from a previous rebase run?  I strongly suggest playing with
copies of your DLLs -- not the originals.

> The further question is if they are indeed
> really corrupt?  I haven't noticed any problems with X, so I assume they
> aren't.  What is your thoughts on this?

Maybe you haven't used the corrupted DLLs?  I just tried with curl and
Windows popped up a dialog complaining that the DLL was "bad."

> I'm thinking I should run through gdb with a file like cygbz21.0.dll.

OK, but I'm not sure what more you will find.

> Also, I have installed the Platform SDK, so what arguments should I
> try with the rebase utility that comes with it?

I was going to suggest the above, but I wasn't sure if you had the SDK
or not.  Use the same arguments sans the offset (i.e., "-o") option
since the SDK's rebase doesn't support it.

BTW, under Windows 2000 I get the following:

    $ file cygXpm-*
    cygXpm-X4.dll:   MS Windows PE Intel 80386 console DLL
    cygXpm-noX4.dll: MS Windows PE Intel 80386 console DLL
    $ rebase -d -b 0x68000000 -o 0x10000 cygXpm-*
    C:\cygwin\tmp\cygXpm-X4.dll: new base = 67fe0000, new size = 20000
    C:\cygwin\tmp\cygXpm-noX4.dll: new base = 67fc0000, new size = 20000
    $ file cygXpm-*
    cygXpm-X4.dll:   MS Windows PE Intel 80386 console DLL
    cygXpm-noX4.dll: MS Windows PE Intel 80386 console DLL

Is it time to upgrade? :,)

Thanks,
Jason

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

