Stop Winedbg Crashing on Loading Certain DLLs
Robert Shearman
R.J.Shearman at warwick.ac.uk
Wed Dec 4 18:36:44 CST 2002
This hack^H^H^H^Hpatch stops winedbg crashing on loading several (C++?)
DLLs. In particular, those used by Microsoft Visual C++ IDE. I doubt this
will be applied, but it's worth a shot!
Changelog:
- Add exception handler for protection when parsing DLLs which don't conform
to the expected format
-------------- next part --------------
Index: wine/programs/winedbg/msc.c
===================================================================
RCS file: /home/wine/wine/programs/winedbg/msc.c,v
retrieving revision 1.1
diff -u -r1.1 msc.c
--- wine/programs/winedbg/msc.c 13 Sep 2002 17:54:28 -0000 1.1
+++ wine/programs/winedbg/msc.c 4 Dec 2002 22:37:18 -0000
@@ -34,6 +34,8 @@
#include <string.h>
#include <unistd.h>
+#include "wine/exception.h"
+#include "msvcrt/excpt.h"
#ifndef PATH_MAX
#define PATH_MAX MAX_PATH
#endif
@@ -58,6 +60,11 @@
} MSC_DBG_INFO;
+static WINE_EXCEPTION_FILTER(page_fault)
+{
+ return GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH;
+}
+
/*========================================================================
* Debug file access helper routines
*/
@@ -258,6 +265,8 @@
new_value.cookie = DV_TARGET;
new_value.type = NULL;
+ __TRY
+ {
for(i=0; i < coff->NumberOfSymbols; i++ )
{
coff_sym = coff_symbols + i;
@@ -468,6 +477,12 @@
i += naux;
}
+ }
+ __EXCEPT(page_fault)
+ {
+ return DIL_ERROR;
+ }
+ __ENDTRY
/*
* OK, we now should have a list of files, and we should have a list
More information about the wine-patches
mailing list