| Summary: | [local][shells] app output is lost while debugging it via gdbserver | ||
|---|---|---|---|
| Product: | [Tools] Target Management | Reporter: | Anna Dushistova <anna.dushistova> |
| Component: | RSE | Assignee: | dsdp.tm.rse-inbox <tm.rse-inbox> |
| Status: | NEW --- | QA Contact: | Martin Oberhuber <mober.at+eclipse> |
| Severity: | normal | ||
| Priority: | P3 | CC: | dmcknigh |
| Version: | 3.3 | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Bug Depends on: | |||
| Bug Blocks: | 349345 | ||
|
Description
Anna Dushistova
This is probably because the local shell is not a real tty shell, so programs running under it don't return output until completion. (In reply to comment #1) > This is probably because the local shell is not a real tty shell, so programs > running under it don't return output until completion. Do you think it's possible to change this behavior or maybe we should just disable the "Local" connections in the remote launcher? (In reply to comment #2) > (In reply to comment #1) > > This is probably because the local shell is not a real tty shell, so programs > > running under it don't return output until completion. > > Do you think it's possible to change this behavior or maybe we should just > disable the "Local" connections in the remote launcher? I guess that's up to you. For now, this will still work for launches where users don't care about the standard IO. This can be alleviated by providing a pseudo-terminal. In fact, LocalShellThread does allow you to hook that in if an "rse.pty" JVM property is specified: ... // if pty exists for this client // then the rse.pty property will have been set // by the contributor of the pty exectuable // on linux client this is a likely scenario PSEUDO_TERMINAL = System.getProperty("rse.pty"); //$NON-NLS-1$ if (PSEUDO_TERMINAL != null) { try { PSEUDO_TERMINAL = FileLocator.resolve(new URL(PSEUDO_TERMINAL)).getPath(); } catch (Exception e) { /* ignore, no pty available */ } } ... Dave, can you please explain a bit more how this is supposed to work? Thanks! (In reply to comment #4) > Dave, can you please explain a bit more how this is supposed to work? > Thanks! Anna, you can find out more by looking at the 'pty' man pages. Here's one pulled off the web: http://linux.die.net/man/7/pty From RSE, a pseudo terminal executable would be used to launch the shell. This makes the programs in the shell behave as though they were launched in a tty session, allowing the output to come back interactively rather than after program completion. |