http://bugs.winehq.org/show_bug.cgi?id=35646
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sebastian@fds-team.de
--- Comment #3 from Sebastian Lackner sebastian@fds-team.de --- After a bit of debugging I found the issue what causes Obsidium to detect the debugger.
Windows internally handles debugging strings via exceptions (DBG_PRINTEXCEPTION_C) - but Wine doesn't really reimplement them the same way, and instead transmits them directly to the wineserver.
Besides that there is a "bug" in Windows. The reason why OutputDebugStringA doesn't crash, is because it internally catches its own exception via SEH exception handling... but Vectored Exception handlers have a higher priority, and this allows the application to see the DBG_PRINTEXCEPTION_C exception before the debugger sees it.
After finding this out a fix is quite easy: Here is a first version for a fix, which allows Condes9 to start up properly: http://ix.io/cXM :) [Note: Haven't tested the actual functionality, but at least the DRM module doesn't complain anymore... ^^]
Please note that this is not yet the final patch - it will need some more time to investigate the correct ExceptionAddress, ExceptionFlags, ... to reproduce the Windows behaviour as good as possible. I'll send a patch to the mailinglist when I'm done.
Feel free to test the hackfix in the meantime and report back if it also works for all other applications.