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 10:34:36 -0400 From: Jason Tishler Subject: Re: Rebase 1.5-1: Causes invalid page fault In-reply-to: <20020618125246.33368.qmail@web21007.mail.yahoo.com> To: Nicholas Wourms Cc: cygwin AT cygwin DOT com Mail-followup-to: Nicholas Wourms , cygwin AT cygwin DOT com Message-id: <20020618143435.GG1568@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: <20020618123900 DOT GD1568 AT tishler DOT net> <20020618125246 DOT 33368 DOT qmail AT web21007 DOT mail DOT yahoo DOT com> Nicholas, On Tue, Jun 18, 2002 at 05:52:46AM -0700, Nicholas Wourms wrote: > --- Jason Tishler wrote: > > Since there have been many new packages added since then, one needs to > > determine if more DLLs need to be skipped too. > > Short of starting a program linked againsted a "potential" corrupted dll, > is there any other way to know if the dll was corrupted? Perhaps some > heuristics in rebase to detect this (if possible) and restore the original > dll returning a message stating that corruption has occurred might be the > way to go? The above has already been suggested by Rob. Although inconvenient, I don't see a way around it unless someone figures out how to prevent the corruption from occurring in the first place. > Perhaps there is something common in the mangled dlls hex that can be > used to identify this corruption? At the command line, you can use file: $ file cygcurl-2.dll cygcurl-2.dll: MS Windows PE Intel 80386 console DLL ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ $ rebase -d -b 0x68000000 -o 0x10000 cygcurl-2.dll C:\cygwin\tmp\cygcurl-2.dll: new base = 67ff0000, new size = 30000 $ file cygcurl-2.dll cygcurl-2.dll: MS-DOS executable (EXE), OS/2 or MS Windows ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Inside of a program, you can examine the PE header (specifically the PE characteristics field). See rebaser::is_rebaseable() in the following: http://cygwin.com/ml/cygwin-apps/2002-02/msg00010.html for some ideas. > > Yes, please. I'm willing to review your drafts. > > I'll draw up a tentitive version using the LDP HOWTO sgml style and send > it as soon as it is ready. You know, it occurs to me that cygwin is > getting big enough to justify a Cygwin Documentation Project... Anyhow, > I'm going to cull the archives for questions on rebase, please tell me if > there are any other MLs on which you discussed this. It should "all" be on the cygwin lists, but I have discussed this issue on the Python list too. The Python discussion has been captured here: http://www.zope.org/Members/dgeorgieff/howto_zope_cvs_on_cygwin/ > > OK, the above indicates that rebase.exe is blowing up in the call to > > ReBaseImage(). So, either these is a problem with ReBaseImage() (under > > Me) or bad arguments are being passed. Can you get the values of the > > arguments? > > Forgive my ignorance, but how do you suggest I approach this? Since > rebase isn't linked against cygwin1.dll, strace doesn't work on it. Is > there a way to do this operation gdb or is there another tool I should > use? Use gdb by setting a breakpoint ("b" command) at the call to ReBaseImage() and then printing ("p" command) out the arguments. Do they look valid? 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/