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: Sat, 23 Mar 2002 12:48:09 +0100 From: Pavel Tsekov X-Mailer: The Bat! (v1.53d) UNREG / CD5BF9353B3B7091 Reply-To: Pavel Tsekov X-Priority: 3 (Normal) Message-ID: <353888367.20020323124809@gmx.net> To: "Robert Collins" CC: cygwin-apps AT cygwin DOT com, "Seitz, Matt" , cygwin AT cygwin DOT com Subject: Re[2]: [Possible BUG and a fix] Re[2]: Setup.Exe causes Application Error at 0x78001750 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello Robert, Saturday, March 23, 2002, 5:34:28 AM, you wrote: RC> Thanks for taking the time to look at this - I really appreciate that. RC> BTW: If it's reproducible, tell me the steps and I'll look too. Also, if RC> it's reproducible, try building with -DDEBUG. Yep! I found a way to reproduce it... Though on my system setup.exe still doesnt break - I just see something like "RtlFreeHeap: Invalid block " or somthing like that... I'd say that it depends on your system whether or not you'll experience the crash - I'm on WinXP home. I'm sure one could reproduce this very easy on Wine - its very sensitive about heap corruption unlike windowses... 1. Get msvcrt.dll 6.1.8293 2. Put it in the same directory where your setup.exe is. 3. Run setup.exe in gdb ... wait to see the RtlFreeHeap message :) I asked on the list for a dump of setup.exe at the time of the crash so I could determine in which dll this 78001750 is located. I turned out MSVCRT.DLL. I asked one of the people to supply me with his MSVCRT.DLL and I found that this 78001750 is part of a helper function used by realloc () and free (). Started to browse the code an found no suspicios call to free() or realloc()... Then Matt would come with a drwatsn.log and I found the return address that the call which crashed setup.exe would use to return. Then I remembered that i have setup-20020317.exe which had the debug info :)). Found with my disassemler the function which contained the return address from above unfortunately the disassembler doesnt understand the debug info of setup.exe. So I put a breakpoint in gdb on the address I found with the disassembler and it turned its __builtin_vector_delete. Then I send a mail to the list about that... After that I decided to run setup.exe from gdb as described in the steps above and gdb broke in the right place :) Bah, this was too long :) I'll supply you with the msvcrt.dll offlist so you could try by yourself. P.S. Forgot to mention that I;ve built setup.exe with my suggested patch and it was fine :) Send a copy of it to Matt Seitz to test it but I guess this was to early in the morning :) -- 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/