aboutsummaryrefslogtreecommitdiff
path: root/gdb/remote.c
diff options
context:
space:
mode:
authorSteve Chamberlain <sac@cygnus>1995-08-09 20:41:16 +0000
committerSteve Chamberlain <sac@cygnus>1995-08-09 20:41:16 +0000
commit998cfe7df0c342291dfa2b22804beb8f88c72ca9 (patch)
tree2e9873c400986f756afe59de0cdf79c3f314f7a5 /gdb/remote.c
parent60e36671ef86f1f1a2387ec751ece0fce6a06b23 (diff)
downloadfsf-binutils-gdb-998cfe7df0c342291dfa2b22804beb8f88c72ca9.zip
fsf-binutils-gdb-998cfe7df0c342291dfa2b22804beb8f88c72ca9.tar.gz
fsf-binutils-gdb-998cfe7df0c342291dfa2b22804beb8f88c72ca9.tar.bz2
* remote-hms.c (hms_cmds): Get reg term right.
* monitor.c (monitor_fetch_register): If we see a non-hex digit, just stop reading. * remote.c (remote_wait): Change way $O is handled.
Diffstat (limited to 'gdb/remote.c')
-rw-r--r--gdb/remote.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/gdb/remote.c b/gdb/remote.c
index 103bf15..afd1a28 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -15,7 +15,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Remote communication protocol.
@@ -130,11 +130,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
targets.
or... XAA The process terminated with signal
AA.
- or... Otext Send text to stdout. This can happen
- at any time while the program is
+ or... OXX..XX XX..XX is hex encoding of ASCII data. This
+ can happen at any time while the program is
running and the debugger should
continue to wait for 'W', 'T', etc.
+ or... Otext Send text to stdout.
+
thread alive TXX Find out if the thread XX is alive.
reply OK thread is still alive
ENN thread is dead
@@ -812,7 +814,17 @@ Packet: '%s'\n",
goto got_status;
case 'O': /* Console output */
- fputs_filtered ((char *)(buf + 1), gdb_stdout);
+ for (p = buf + 1; *p; p +=2)
+ {
+ char tb[2];
+ char c = fromhex (p[0]) * 16 + fromhex (p[1]);
+ tb[0] = c;
+ tb[1] = 0;
+ if (target_output_hook)
+ target_output_hook (tb);
+ else
+ fputs_filtered (tb, gdb_stdout);
+ }
continue;
case '\0':
if (last_sent_signal != TARGET_SIGNAL_0)