M1 | M2 | 055 | 001
|Product:||Odamex||Reporter:||Russell Rice <russell>|
|Component:||Client||Assignee:||Odamex Bug Reporter <odamex-bug-reporter>|
Description Russell Rice 2012-09-15 23:43:59 UTC
Finally figured this out.. When exiting the client on windows in a gdb session doesn't cause it to shut down, this is because we link with the SDLmain library which does some funky-ass shit (the real issue: using atexit() on sdl functions which in turn call system video shutdown functions (ie directx or gdi) = baaaad since the crt doesn't know shit about this stuff) Here is the file in question that does this: http://www.koders.com/c/fid992E7EC1F2CEFBFF12A5BF1B2734262183CC0B16.aspx?s=%22sam%22#L2 We can remove the library, but then we'd have to do one of the following: 1) Need to write our own WinMain function, which then requires us to write out own command line parsing routine to translate lpCmdLine to the argv/argc style of arguments so the rest of the code remains unaffected, DArgs has a SetArgs function to handle this kind of "tokenized" command line 2) Leave the code intact, but you'd need to compile as a console application. This means we get a hideous console window appear behind the main window, sure just call FreeConsole().. but then you'd get a console window appear/disappear suddenly Removing this library will also let the OS decide on how to use stdout/err rather than just dumping it to a text file Opinions on this?
Comment 1 Alexander Mayfield 2012-09-21 00:03:08 UTC
I don't see a reason why not to move forward with it, as long as it doesn't break any platforms in some horrific way.
Comment 2 Alexander Mayfield 2012-09-23 15:26:43 UTC
Manc is also in favor of this, you missed his favorable reply in IRC by a few hours.