Consoles (3/3)

Eric Pouech eric.pouech at wanadoo.fr
Thu Feb 27 13:57:08 CST 2003


> Well in that case you have to use a separate console. It would be nice
> to have the possibility to detect that the Unix tty is not available
> and automatically pop up a console in that case; but unconditionally
> creating a console is wrong, there are many cases where you don't want
> that.

well, if you really want to do that, you have to decide on what you want 
winedbg to use as input / output streams :
1/ the unix stdin / stdout that winedbg will get upon startup => those 
would be inherited from the offending app (of course those streams could 
be redirected to something else than the controlling console)
2/ the current windows-console (if any) of the offending process

note that of course 1/ and 2/ could happen at the same time

the nasty thing, for example, for implementing one would be to do 
something like (whithout error handling):
if in jit mode
{
     if (!isatty(0) || !isatty(1))
     {
	/* restart debugger so that it'll get the right console
	   hooked to 0/1
	 */
	the steps here are:
	    create a new event
	    relaunch dbg with something like *
	    wineconsole -- %argv[0] --pid=<cur_pid> --evt=<new event>
	    wait on <new event>
	    signal old event
	    terminate this process, now that the child has attached
     }
}

which I find particulary ugly

A+
-- 
Eric Pouech




More information about the wine-devel mailing list