aboutsummaryrefslogtreecommitdiff
path: root/gdb/remote.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/remote.c')
-rw-r--r--gdb/remote.c60
1 files changed, 33 insertions, 27 deletions
diff --git a/gdb/remote.c b/gdb/remote.c
index e1b0b1e..8fadca8 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -485,7 +485,7 @@ set_thread (th, gen)
int th;
int gen;
{
- char buf[PBUFSIZ];
+ char *buf = alloca (PBUFSIZ);
int state = gen ? general_thread : continue_thread;
if (state == th)
@@ -1059,7 +1059,7 @@ remote_get_threadinfo (threadid, fieldset, info)
struct gdb_ext_thread_info *info;
{
int result;
- char threadinfo_pkt[PBUFSIZ];
+ char *threadinfo_pkt = alloca (PBUFSIZ);
pack_threadinfo_request (threadinfo_pkt, fieldset, threadid);
putpkt (threadinfo_pkt);
@@ -1146,8 +1146,8 @@ remote_get_threadlist (startflag, nextthread, result_limit,
{
static threadref echo_nextthread;
- char threadlist_packet[PBUFSIZ];
- char t_response[PBUFSIZ];
+ char *threadlist_packet = alloca (PBUFSIZ);
+ char *t_response = alloca (PBUFSIZ);
int result = 1;
/* Trancate result limit to be smaller than the packet size */
@@ -1267,7 +1267,7 @@ static int
remote_current_thread (oldpid)
int oldpid;
{
- char buf[PBUFSIZ];
+ char *buf = alloca (PBUFSIZ);
putpkt ("qC");
getpkt (buf, 0);
@@ -1291,7 +1291,8 @@ remote_find_new_threads ()
static void
remote_threads_info (void)
{
- char buf[PBUFSIZ], *bufp;
+ char *buf = alloca (PBUFSIZ);
+ char *bufp;
int tid;
if (remote_desc == 0) /* paranoia */
@@ -1323,7 +1324,7 @@ remote_threads_info (void)
static void
extended_remote_restart ()
{
- char buf[PBUFSIZ];
+ char *buf = alloca (PBUFSIZ);
/* Send the restart command; for reasons I don't understand the
remote side really expects a number after the "R". */
@@ -1354,7 +1355,8 @@ remote_close (quitting)
static void
get_offsets ()
{
- char buf[PBUFSIZ], *ptr;
+ char *buf = alloca (PBUFSIZ);
+ char *ptr;
int lose;
CORE_ADDR text_addr, data_addr, bss_addr;
struct section_offsets *offs;
@@ -1414,7 +1416,7 @@ get_offsets ()
if (symfile_objfile == NULL)
return;
- offs = (struct section_offsets *) alloca (sizeof (struct section_offsets)
+ offs = alloca (sizeof (struct section_offsets)
+ symfile_objfile->num_sections
* sizeof (offs->offsets));
memcpy (offs, symfile_objfile->section_offsets,
@@ -1697,7 +1699,7 @@ serial device is attached to the remote system (e.g. /dev/ttya).");
if (extended_p)
{
/* tell the remote that we're using the extended protocol. */
- char buf[PBUFSIZ];
+ char *buf = alloca (PBUFSIZ);
putpkt ("!");
getpkt (buf, 0);
}
@@ -1713,7 +1715,7 @@ remote_detach (args, from_tty)
char *args;
int from_tty;
{
- char buf[PBUFSIZ];
+ char *buf = alloca (PBUFSIZ);
if (args)
error ("Argument given to \"detach\" when remotely debugging.");
@@ -1766,7 +1768,7 @@ remote_resume (pid, step, siggnal)
int pid, step;
enum target_signal siggnal;
{
- char buf[PBUFSIZ];
+ char *buf = alloca (PBUFSIZ);
if (pid == -1)
set_thread (0, 0); /* run any thread */
@@ -1896,7 +1898,7 @@ remote_wait (pid, status)
int pid;
struct target_waitstatus *status;
{
- unsigned char buf[PBUFSIZ];
+ unsigned char *buf = alloca (PBUFSIZ);
int thread_num = -1;
status->kind = TARGET_WAITKIND_EXITED;
@@ -2119,7 +2121,7 @@ static void
remote_fetch_registers (regno)
int regno;
{
- char buf[PBUFSIZ];
+ char *buf = alloca (PBUFSIZ);
int i;
char *p;
char regs[REGISTER_BYTES];
@@ -2207,7 +2209,7 @@ static void
remote_store_registers (regno)
int regno;
{
- char buf[PBUFSIZ];
+ char *buf = alloca (PBUFSIZ);
int i;
char *p;
@@ -2360,7 +2362,8 @@ check_binary_download (addr)
{
if (remote_binary_download && !remote_binary_checked)
{
- char buf[PBUFSIZ], *p;
+ char *buf = alloca (PBUFSIZ);
+ char *p;
remote_binary_checked = 1;
p = buf;
@@ -2403,6 +2406,7 @@ remote_write_bytes (memaddr, myaddr, len)
char *myaddr;
int len;
{
+ unsigned char *buf = alloca (PBUFSIZ);
int max_buf_size; /* Max size of packet output buffer */
int origlen;
@@ -2421,7 +2425,6 @@ remote_write_bytes (memaddr, myaddr, len)
origlen = len;
while (len > 0)
{
- unsigned char buf[PBUFSIZ];
unsigned char *p, *plen;
int todo;
int i;
@@ -2534,6 +2537,7 @@ remote_read_bytes (memaddr, myaddr, len)
char *myaddr;
int len;
{
+ char *buf = alloca (PBUFSIZ);
int max_buf_size; /* Max size of packet output buffer */
int origlen;
@@ -2546,7 +2550,6 @@ remote_read_bytes (memaddr, myaddr, len)
origlen = len;
while (len > 0)
{
- char buf[PBUFSIZ];
char *p;
int todo;
int i;
@@ -2647,7 +2650,7 @@ remote_search (len, data, mask, startaddr, increment, lorange, hirange
long mask_long, data_long;
long data_found_long;
CORE_ADDR addr_we_found;
- char buf[PBUFSIZ];
+ char *buf = alloca (PBUFSIZ);
long returned_long[2];
char *p;
@@ -2779,7 +2782,9 @@ putpkt_binary (buf, cnt)
{
int i;
unsigned char csum = 0;
- char buf2[PBUFSIZ];
+ char *buf2 = alloca (PBUFSIZ);
+ char *junkbuf = alloca (PBUFSIZ);
+
int ch;
int tcount = 0;
char *p;
@@ -2850,8 +2855,6 @@ putpkt_binary (buf, cnt)
break; /* Retransmit buffer */
case '$':
{
- char junkbuf[PBUFSIZ];
-
/* It's probably an old response, and we're out of sync.
Just gobble up the packet and ignore it. */
getpkt (junkbuf, 0);
@@ -2956,7 +2959,7 @@ read_frame (buf)
{
if (remote_cisco_mode) /* variant run-length-encoding */
{
- char tmp_buf[PBUFSIZ];
+ char *tmp_buf = alloca (PBUFSIZ);
remote_cisco_expand (buf, tmp_buf);
strcpy (buf, tmp_buf);
@@ -3329,7 +3332,10 @@ compare_sections_command (args, from_tty)
unsigned long host_crc, target_crc;
extern bfd *exec_bfd;
struct cleanup *old_chain;
- char *tmp, *sectdata, *sectname, buf[PBUFSIZ];
+ char *tmp;
+ char *sectdata;
+ char *sectname;
+ char *buf = alloca (PBUFSIZ);
bfd_size_type size;
bfd_vma lma;
int matched = 0;
@@ -3403,7 +3409,7 @@ remote_query (query_type, buf, outbuf, bufsiz)
int *bufsiz;
{
int i;
- char buf2[PBUFSIZ];
+ char *buf2 = alloca (PBUFSIZ);
char *p2 = &buf2[0];
char *p = buf;
@@ -3470,7 +3476,7 @@ packet_command (args, from_tty)
char *args;
int from_tty;
{
- char buf[PBUFSIZ];
+ char *buf = alloca (PBUFSIZ);
if (! remote_desc)
error ("command can only be used with remote target");
@@ -3726,7 +3732,7 @@ remote_info_process (args, from_tty)
char *args;
int from_tty;
{
- char buf[PBUFSIZ];
+ char *buf = alloca (PBUFSIZ);
if (remote_desc == 0)
error ("Command can only be used when connected to the remote target.");