Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(457)

Side by Side Diff: gdb/remote.c

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gdb/regformats/reg-tilegx.dat ('k') | gdb/remote-fileio.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
None
OLDNEW
1 /* Remote target communications for serial-line targets in custom GDB protocol 1 /* Remote target communications for serial-line targets in custom GDB protocol
2 2
3 Copyright (C) 1988-2012 Free Software Foundation, Inc. 3 Copyright (C) 1988-2012 Free Software Foundation, Inc.
4 4
5 This file is part of GDB. 5 This file is part of GDB.
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or 9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version. 10 (at your option) any later version.
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 #include "remote-fileio.h" 58 #include "remote-fileio.h"
59 #include "gdb/fileio.h" 59 #include "gdb/fileio.h"
60 #include "gdb_stat.h" 60 #include "gdb_stat.h"
61 #include "xml-support.h" 61 #include "xml-support.h"
62 62
63 #include "memory-map.h" 63 #include "memory-map.h"
64 64
65 #include "tracepoint.h" 65 #include "tracepoint.h"
66 #include "ax.h" 66 #include "ax.h"
67 #include "ax-gdb.h" 67 #include "ax-gdb.h"
68 #include "agent.h"
68 69
69 /* Temp hacks for tracepoint encoding migration. */ 70 /* Temp hacks for tracepoint encoding migration. */
70 static char *target_buf; 71 static char *target_buf;
71 static long target_buf_size; 72 static long target_buf_size;
72 /*static*/ void
73 encode_actions (struct breakpoint *t, struct bp_location *tloc,
74 char ***tdp_actions, char ***stepping_actions);
75 73
76 /* The size to align memory write packets, when practical. The protocol 74 /* The size to align memory write packets, when practical. The protocol
77 does not guarantee any alignment, and gdb will generate short 75 does not guarantee any alignment, and gdb will generate short
78 writes and unaligned writes, but even as a best-effort attempt this 76 writes and unaligned writes, but even as a best-effort attempt this
79 can improve bulk transfers. For instance, if a write is misaligned 77 can improve bulk transfers. For instance, if a write is misaligned
80 relative to the target's data bus, the stub may need to make an extra 78 relative to the target's data bus, the stub may need to make an extra
81 round trip fetching data from the target. This doesn't make a 79 round trip fetching data from the target. This doesn't make a
82 huge difference, but it's easy to do, so we try to be helpful. 80 huge difference, but it's easy to do, so we try to be helpful.
83 81
84 The alignment chosen is arbitrary; usually data bus width is 82 The alignment chosen is arbitrary; usually data bus width is
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 233
236 static void remote_async_inferior_event_handler (gdb_client_data); 234 static void remote_async_inferior_event_handler (gdb_client_data);
237 static void remote_async_get_pending_events_handler (gdb_client_data); 235 static void remote_async_get_pending_events_handler (gdb_client_data);
238 236
239 static void remote_terminal_ours (void); 237 static void remote_terminal_ours (void);
240 238
241 static int remote_read_description_p (struct target_ops *target); 239 static int remote_read_description_p (struct target_ops *target);
242 240
243 static void remote_console_output (char *msg); 241 static void remote_console_output (char *msg);
244 242
243 static int remote_supports_cond_breakpoints (void);
244
245 static int remote_can_run_breakpoint_commands (void);
246
245 /* The non-stop remote protocol provisions for one pending stop reply. 247 /* The non-stop remote protocol provisions for one pending stop reply.
246 This is where we keep it until it is acknowledged. */ 248 This is where we keep it until it is acknowledged. */
247 249
248 static struct stop_reply *pending_stop_reply = NULL; 250 static struct stop_reply *pending_stop_reply = NULL;
249 251
250 /* For "remote". */ 252 /* For "remote". */
251 253
252 static struct cmd_list_element *remote_cmdlist; 254 static struct cmd_list_element *remote_cmdlist;
253 255
254 /* For "set remote" and "show remote". */ 256 /* For "set remote" and "show remote". */
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 314
313 /* True if the stub reports support for non-stop mode. */ 315 /* True if the stub reports support for non-stop mode. */
314 int non_stop_aware; 316 int non_stop_aware;
315 317
316 /* True if the stub reports support for vCont;t. */ 318 /* True if the stub reports support for vCont;t. */
317 int support_vCont_t; 319 int support_vCont_t;
318 320
319 /* True if the stub reports support for conditional tracepoints. */ 321 /* True if the stub reports support for conditional tracepoints. */
320 int cond_tracepoints; 322 int cond_tracepoints;
321 323
324 /* True if the stub reports support for target-side breakpoint
325 conditions. */
326 int cond_breakpoints;
327
328 /* True if the stub reports support for target-side breakpoint
329 commands. */
330 int breakpoint_commands;
331
322 /* True if the stub reports support for fast tracepoints. */ 332 /* True if the stub reports support for fast tracepoints. */
323 int fast_tracepoints; 333 int fast_tracepoints;
324 334
325 /* True if the stub reports support for static tracepoints. */ 335 /* True if the stub reports support for static tracepoints. */
326 int static_tracepoints; 336 int static_tracepoints;
327 337
328 /* True if the stub reports support for installing tracepoint while 338 /* True if the stub reports support for installing tracepoint while
329 tracing. */ 339 tracing. */
330 int install_in_trace; 340 int install_in_trace;
331 341
(...skipping 24 matching lines...) Expand all
356 free_private_thread_info (struct private_thread_info *info) 366 free_private_thread_info (struct private_thread_info *info)
357 { 367 {
358 xfree (info->extra); 368 xfree (info->extra);
359 xfree (info); 369 xfree (info);
360 } 370 }
361 371
362 /* Returns true if the multi-process extensions are in effect. */ 372 /* Returns true if the multi-process extensions are in effect. */
363 static int 373 static int
364 remote_multi_process_p (struct remote_state *rs) 374 remote_multi_process_p (struct remote_state *rs)
365 { 375 {
366 return rs->extended && rs->multi_process_aware; 376 return rs->multi_process_aware;
367 } 377 }
368 378
369 /* This data could be associated with a target, but we do not always 379 /* This data could be associated with a target, but we do not always
370 have access to the current target when we need it, so for now it is 380 have access to the current target when we need it, so for now it is
371 static. This will be fine for as long as only one target is in use 381 static. This will be fine for as long as only one target is in use
372 at a time. */ 382 at a time. */
373 static struct remote_state remote_state; 383 static struct remote_state remote_state;
374 384
375 static struct remote_state * 385 static struct remote_state *
376 get_remote_state_raw (void) 386 get_remote_state_raw (void)
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 org_to = to; 482 org_to = to;
473 483
474 TRY_CATCH (ex, RETURN_MASK_ALL) 484 TRY_CATCH (ex, RETURN_MASK_ALL)
475 { 485 {
476 gdbarch_relocate_instruction (target_gdbarch, &to, from); 486 gdbarch_relocate_instruction (target_gdbarch, &to, from);
477 } 487 }
478 if (ex.reason >= 0) 488 if (ex.reason >= 0)
479 { 489 {
480 adjusted_size = to - org_to; 490 adjusted_size = to - org_to;
481 491
482 » sprintf (buf, "qRelocInsn:%x", adjusted_size); 492 » xsnprintf (buf, *sizeof_buf, "qRelocInsn:%x", adjusted_size);
483 putpkt (buf); 493 putpkt (buf);
484 } 494 }
485 else if (ex.reason < 0 && ex.error == MEMORY_ERROR) 495 else if (ex.reason < 0 && ex.error == MEMORY_ERROR)
486 { 496 {
487 /* Propagate memory errors silently back to the target. 497 /* Propagate memory errors silently back to the target.
488 The stub may have limited the range of addresses we 498 The stub may have limited the range of addresses we
489 can write to, for example. */ 499 can write to, for example. */
490 putpkt ("E01"); 500 putpkt ("E01");
491 } 501 }
492 else 502 else
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
739 749
740 /* Allow the user to specify what sequence to send to the remote 750 /* Allow the user to specify what sequence to send to the remote
741 when he requests a program interruption: Although ^C is usually 751 when he requests a program interruption: Although ^C is usually
742 what remote systems expect (this is the default, here), it is 752 what remote systems expect (this is the default, here), it is
743 sometimes preferable to send a break. On other systems such 753 sometimes preferable to send a break. On other systems such
744 as the Linux kernel, a break followed by g, which is Magic SysRq g 754 as the Linux kernel, a break followed by g, which is Magic SysRq g
745 is required in order to interrupt the execution. */ 755 is required in order to interrupt the execution. */
746 const char interrupt_sequence_control_c[] = "Ctrl-C"; 756 const char interrupt_sequence_control_c[] = "Ctrl-C";
747 const char interrupt_sequence_break[] = "BREAK"; 757 const char interrupt_sequence_break[] = "BREAK";
748 const char interrupt_sequence_break_g[] = "BREAK-g"; 758 const char interrupt_sequence_break_g[] = "BREAK-g";
749 static const char *interrupt_sequence_modes[] = 759 static const char *const interrupt_sequence_modes[] =
750 { 760 {
751 interrupt_sequence_control_c, 761 interrupt_sequence_control_c,
752 interrupt_sequence_break, 762 interrupt_sequence_break,
753 interrupt_sequence_break_g, 763 interrupt_sequence_break_g,
754 NULL 764 NULL
755 }; 765 };
756 static const char *interrupt_sequence_mode = interrupt_sequence_control_c; 766 static const char *interrupt_sequence_mode = interrupt_sequence_control_c;
757 767
758 static void 768 static void
759 show_interrupt_sequence (struct ui_file *file, int from_tty, 769 show_interrupt_sequence (struct ui_file *file, int from_tty,
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
1232 PACKET_vCont = 0, 1242 PACKET_vCont = 0,
1233 PACKET_X, 1243 PACKET_X,
1234 PACKET_qSymbol, 1244 PACKET_qSymbol,
1235 PACKET_P, 1245 PACKET_P,
1236 PACKET_p, 1246 PACKET_p,
1237 PACKET_Z0, 1247 PACKET_Z0,
1238 PACKET_Z1, 1248 PACKET_Z1,
1239 PACKET_Z2, 1249 PACKET_Z2,
1240 PACKET_Z3, 1250 PACKET_Z3,
1241 PACKET_Z4, 1251 PACKET_Z4,

error: old chunk mismatch

OLDNEW
« no previous file with comments | « gdb/regformats/reg-tilegx.dat ('k') | gdb/remote-fileio.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698