[Mono-bugs] [Bug 82244][Nor] Changed - Message Box popup preventing continuation of execution
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Wed Sep 12 04:31:32 EDT 2007
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by massi at ximian.com.
http://bugzilla.ximian.com/show_bug.cgi?id=82244
--- shadow/82244 2007-08-17 11:25:52.000000000 -0400
+++ shadow/82244.tmp.15536 2007-09-12 04:31:32.000000000 -0400
@@ -53,6 +53,36 @@
------- Additional Comments From miguel at ximian.com 2007-08-17 11:23 -------
This is also what hangs the buildbots for Windows in our office. I
never knew what it was, but they do happen.
We should fix this.
+
+------- Additional Comments From massi at ximian.com 2007-09-12 04:31 -------
+AFAICS g_log_set_default_handler cannot be used to fix this: the
+MessageBox call is inside g_logv, which cannot be replaced.
+(g_logv, then, calls the user supplied logging function[s]).
+
+Windows does not offer a facility like LD_FPRELOAD.
+See "http://fy.chalmers.se/~appro/nt/DLL_PRELOAD" for a couple of
+ways to implement it, but both are definitely too intrusive for our
+needs IMHO.
+
+In a more simple way, it might be possible to just iterate the
+Import Address Tables from within the process, and redirect the
+call to MessageBox, borrowing ideas from here:
+"http://www.codeproject.com/dll/apihijack.asp".
+
+However, this would have the "side effect" of preventing completely
+the use of MessageBox.
+For instance, imagine a Windows GUI application embedding the Mono
+runtime... clearly this redirection should be disabled in that
+case.
+
+Having glib fix the issue would be better, they should provide a
+settable property stating if the app should be debugged or not.
+Or we could just switch to eglib...
+
+That said, walking the Import Address Tables can be attempted, it
+could work at least in the majority of cases (apps which do not
+need MessageBox).
+
More information about the mono-bugs
mailing list