Alexandre Julliard a écrit :
"Jérôme Gardou" jerome.gardou@gmail.com 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?= jerome.gardou@laposte.net 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--