Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Tue, 18 Jun 2002 16:17:29 -0400 From: Jason Tishler Subject: Re: Rebase 1.5-1: Causes invalid page fault In-reply-to: <20020618182158.91025.qmail@web21001.mail.yahoo.com> To: Nicholas Wourms Cc: cygwin AT cygwin DOT com Mail-followup-to: Nicholas Wourms , cygwin AT cygwin DOT 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 DOT GI1568 AT tishler DOT net> <20020618182158 DOT 91025 DOT qmail AT web21001 DOT mail DOT yahoo DOT 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/