X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fgdbserver%2Fremote-utils.c;h=5f4382069c895b09c759c012dcd266a947129187;hb=618f726fcb851883a0094aa7fa17003889b7189f;hp=7cf66cc7d981fe7b83351a19dfbe0211b20ef545;hpb=d57e0d5022e0d3409f68bb02fd27311d8d0327ea;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdbserver/remote-utils.c b/gdb/gdbserver/remote-utils.c index 7cf66cc7d9..5f4382069c 100644 --- a/gdb/gdbserver/remote-utils.c +++ b/gdb/gdbserver/remote-utils.c @@ -1,5 +1,5 @@ /* Remote utility routines for the remote server for GDB. - Copyright (C) 1986-2015 Free Software Foundation, Inc. + Copyright (C) 1986-2016 Free Software Foundation, Inc. This file is part of GDB. @@ -622,7 +622,7 @@ putpkt_binary_1 (char *buf, int cnt, int is_notif) char *p; int cc; - buf2 = xmalloc (strlen ("$") + cnt + strlen ("#nn") + 1); + buf2 = (char *) xmalloc (strlen ("$") + cnt + strlen ("#nn") + 1); /* Copy the packet into buffer BUF2, encapsulating it and giving it a checksum. */ @@ -882,7 +882,10 @@ readchar (void) if (readchar_bufcnt <= 0) { if (readchar_bufcnt == 0) - fprintf (stderr, "readchar: Got EOF\n"); + { + if (remote_debug) + fprintf (stderr, "readchar: Got EOF\n"); + } else perror ("readchar"); @@ -1119,6 +1122,7 @@ prepare_resume_reply (char *buf, ptid_t ptid, case TARGET_WAITKIND_VFORKED: case TARGET_WAITKIND_VFORK_DONE: case TARGET_WAITKIND_EXECD: + case TARGET_WAITKIND_THREAD_CREATED: { struct thread_info *saved_thread; const char **regp; @@ -1161,6 +1165,13 @@ prepare_resume_reply (char *buf, ptid_t ptid, status->value.execd_pathname = NULL; buf += strlen (buf); } + else if (status->kind == TARGET_WAITKIND_THREAD_CREATED + && report_thread_events) + { + enum gdb_signal signal = GDB_SIGNAL_TRAP; + + sprintf (buf, "T%02xcreate:;", signal); + } else sprintf (buf, "T%02x", status->value.sig); @@ -1276,6 +1287,14 @@ prepare_resume_reply (char *buf, ptid_t ptid, else sprintf (buf, "X%02x", status->value.sig); break; + case TARGET_WAITKIND_THREAD_EXITED: + sprintf (buf, "w%x;", status->value.integer); + buf += strlen (buf); + buf = write_ptid (buf, ptid); + break; + case TARGET_WAITKIND_NO_RESUMED: + sprintf (buf, "N"); + break; default: error ("unhandled waitkind"); break; @@ -1325,7 +1344,7 @@ decode_M_packet (char *from, CORE_ADDR *mem_addr_ptr, unsigned int *len_ptr, } if (*to_p == NULL) - *to_p = xmalloc (*len_ptr); + *to_p = (unsigned char *) xmalloc (*len_ptr); hex2bin (&from[i++], *to_p, *len_ptr); } @@ -1351,7 +1370,7 @@ decode_X_packet (char *from, int packet_len, CORE_ADDR *mem_addr_ptr, } if (*to_p == NULL) - *to_p = xmalloc (*len_ptr); + *to_p = (unsigned char *) xmalloc (*len_ptr); if (remote_unescape_input ((const gdb_byte *) &from[i], packet_len - i, *to_p, *len_ptr) != *len_ptr) @@ -1478,7 +1497,7 @@ look_up_one_symbol (const char *name, CORE_ADDR *addrp, int may_ask_gdb) unsigned int mem_len; decode_m_packet (&own_buf[1], &mem_addr, &mem_len); - mem_buf = xmalloc (mem_len); + mem_buf = (unsigned char *) xmalloc (mem_len); if (read_inferior_memory (mem_addr, mem_buf, mem_len) == 0) bin2hex (mem_buf, own_buf, mem_len); else @@ -1562,7 +1581,7 @@ relocate_instruction (CORE_ADDR *to, CORE_ADDR oldloc) if (own_buf[0] == 'm') { decode_m_packet (&own_buf[1], &mem_addr, &mem_len); - mem_buf = xmalloc (mem_len); + mem_buf = (unsigned char *) xmalloc (mem_len); if (read_inferior_memory (mem_addr, mem_buf, mem_len) == 0) bin2hex (mem_buf, own_buf, mem_len); else @@ -1617,7 +1636,7 @@ void monitor_output (const char *msg) { int len = strlen (msg); - char *buf = xmalloc (len * 2 + 2); + char *buf = (char *) xmalloc (len * 2 + 2); buf[0] = 'O'; bin2hex ((const gdb_byte *) msg, buf + 1, len);