Alexandre Julliard a écrit :
"Jérôme Gardou" <[email protected]> writes:

Well, launching winedbg instead of printing incomplete information is, IMHO, the best way to make something useful, and, as you said it, kernel32 is always builtin, as ntdll, and faultrep is too close of the system internals to be a totally winapiesque dll. After all, kernel32 already exports a few wine_* functions.

To be honest, I'd really like to have an opinion about this patch before sending it and being silently rejected.

You certainly don't want to add exports to kernel32 for that. Launching
the debugger isn't hard to do in faultrep, plus you most likely want to
do it differently from what kernel32 does.

Is this one too hackish for you ?
From d54e4c5bf909e9bde775a22cb1eabb6f8cae1bcb Mon Sep 17 00:00:00 2001
From: =?utf-8?q?J=C3=A9r=C3=B4me=20Gardou?= <[email protected]>
Date: Mon, 23 Feb 2009 20:47:34 +0100
Subject: [PATCH] faultrep:Make ReportFault display useful information by 
calling winedbg.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------1.6.0.6"

This is a multi-part message in MIME format.
--------------1.6.0.6
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit

---
 dlls/faultrep/faultrep.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)


--------------1.6.0.6
Content-Type: text/x-patch; name="d54e4c5bf909e9bde775a22cb1eabb6f8cae1bcb.diff"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; 
filename="d54e4c5bf909e9bde775a22cb1eabb6f8cae1bcb.diff"

diff --git a/dlls/faultrep/faultrep.c b/dlls/faultrep/faultrep.c
index d4bd713..df02f5b 100644
--- a/dlls/faultrep/faultrep.c
+++ b/dlls/faultrep/faultrep.c
@@ -107,7 +107,10 @@ BOOL WINAPI AddERExcludedApplicationA(LPCSTR lpAppFileName)
  */
 EFaultRepRetVal WINAPI ReportFault(LPEXCEPTION_POINTERS pep, DWORD dwOpt)
 {
-    FIXME("%p 0x%x stub\n", pep, dwOpt);
+    LPTOP_LEVEL_EXCEPTION_FILTER filter = SetUnhandledExceptionFilter(NULL) ;
+    FIXME("%p 0x%x stub. Getting back to winedbg\n", pep, dwOpt);
+    UnhandledExceptionFilter(pep) ;
+    SetUnhandledExceptionFilter(filter) ;
     return frrvOk;
 }
 

--------------1.6.0.6--




Reply via email to