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

Unified Diff: gdb/gdbserver/ax.c

Issue 124383005: GDB 7.6.50 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@upstream
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gdb/gdbserver/ax.h ('k') | gdb/gdbserver/config.in » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gdb/gdbserver/ax.c
diff --git a/gdb/gdbserver/ax.c b/gdb/gdbserver/ax.c
index 70e93222e0a2968f71f8ae75cf08e1f66fa7c8e0..d4768e1b5974eb93a07323e2b2d2e3188f828a19 100644
--- a/gdb/gdbserver/ax.c
+++ b/gdb/gdbserver/ax.c
@@ -1,5 +1,5 @@
/* Agent expression code for remote server.
- Copyright (C) 2009-2012 Free Software Foundation, Inc.
+ Copyright (C) 2009-2013 Free Software Foundation, Inc.
This file is part of GDB.
@@ -19,8 +19,9 @@
#include "server.h"
#include "ax.h"
#include "format.h"
+#include "tracepoint.h"
-static void ax_vdebug (const char *, ...) ATTR_FORMAT (printf, 1, 2);
+static void ax_vdebug (const char *, ...) ATTRIBUTE_PRINTF (1, 2);
#ifdef IN_PROCESS_AGENT
int debug_agent = 0;
@@ -798,10 +799,10 @@ compile_bytecodes (struct agent_expr *aexpr)
in. */
static void
-ax_printf (CORE_ADDR fn, CORE_ADDR chan, char *format,
+ax_printf (CORE_ADDR fn, CORE_ADDR chan, const char *format,
int nargs, ULONGEST *args)
{
- char *f = format;
+ const char *f = format;
struct format_piece *fpieces;
int i, fp;
char *current_substring;
@@ -905,6 +906,7 @@ ax_printf (CORE_ADDR fn, CORE_ADDR chan, char *format,
}
free_format_pieces (fpieces);
+ fflush (stdout);
}
/* The agent expression evaluator, as specified by the GDB docs. It
@@ -912,8 +914,7 @@ ax_printf (CORE_ADDR fn, CORE_ADDR chan, char *format,
otherwise. */
enum eval_result_type
-gdb_eval_agent_expr (struct regcache *regcache,
- struct traceframe *tframe,
+gdb_eval_agent_expr (struct eval_agent_expr_context *ctx,
struct agent_expr *aexpr,
ULONGEST *rslt)
{
@@ -1032,15 +1033,15 @@ gdb_eval_agent_expr (struct regcache *regcache,
break;
case gdb_agent_op_trace:
- agent_mem_read (tframe,
- NULL, (CORE_ADDR) stack[--sp], (ULONGEST) top);
+ agent_mem_read (ctx, NULL, (CORE_ADDR) stack[--sp],
+ (ULONGEST) top);
if (--sp >= 0)
top = stack[sp];
break;
case gdb_agent_op_trace_quick:
arg = aexpr->bytes[pc++];
- agent_mem_read (tframe, NULL, (CORE_ADDR) top, (ULONGEST) arg);
+ agent_mem_read (ctx, NULL, (CORE_ADDR) top, (ULONGEST) arg);
break;
case gdb_agent_op_log_not:
@@ -1086,22 +1087,22 @@ gdb_eval_agent_expr (struct regcache *regcache,
break;
case gdb_agent_op_ref8:
- agent_mem_read (tframe, cnv.u8.bytes, (CORE_ADDR) top, 1);
+ agent_mem_read (ctx, cnv.u8.bytes, (CORE_ADDR) top, 1);
top = cnv.u8.val;
break;
case gdb_agent_op_ref16:
- agent_mem_read (tframe, cnv.u16.bytes, (CORE_ADDR) top, 2);
+ agent_mem_read (ctx, cnv.u16.bytes, (CORE_ADDR) top, 2);
top = cnv.u16.val;
break;
case gdb_agent_op_ref32:
- agent_mem_read (tframe, cnv.u32.bytes, (CORE_ADDR) top, 4);
+ agent_mem_read (ctx, cnv.u32.bytes, (CORE_ADDR) top, 4);
top = cnv.u32.val;
break;
case gdb_agent_op_ref64:
- agent_mem_read (tframe, cnv.u64.bytes, (CORE_ADDR) top, 8);
+ agent_mem_read (ctx, cnv.u64.bytes, (CORE_ADDR) top, 8);
top = cnv.u64.val;
break;
@@ -1160,8 +1161,9 @@ gdb_eval_agent_expr (struct regcache *regcache,
arg = (arg << 8) + aexpr->bytes[pc++];
{
int regnum = arg;
+ struct regcache *regcache = ctx->regcache;
- switch (register_size (regnum))
+ switch (register_size (regcache->tdesc, regnum))
{
case 8:
collect_register (regcache, regnum, cnv.u64.bytes);
@@ -1260,11 +1262,11 @@ gdb_eval_agent_expr (struct regcache *regcache,
case gdb_agent_op_tracev:
arg = aexpr->bytes[pc++];
arg = (arg << 8) + aexpr->bytes[pc++];
- agent_tsv_read (tframe, arg);
+ agent_tsv_read (ctx, arg);
break;
case gdb_agent_op_tracenz:
- agent_mem_read_string (tframe, NULL, (CORE_ADDR) stack[--sp],
+ agent_mem_read_string (ctx, NULL, (CORE_ADDR) stack[--sp],
(ULONGEST) top);
if (--sp >= 0)
top = stack[sp];
« no previous file with comments | « gdb/gdbserver/ax.h ('k') | gdb/gdbserver/config.in » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698