/* Shared utility routines for GDB to interact with agent.
- Copyright (C) 2009-2012 Free Software Foundation, Inc.
+ Copyright (C) 2009-2014 Free Software Foundation, Inc.
This file is part of GDB.
#else
#include "defs.h"
#include "target.h"
-#include "inferior.h" /* for non_stop */
+#include "infrun.h"
+#include "objfiles.h"
#endif
-
-#include <string.h>
#include <unistd.h>
#include "agent.h"
+#include "filestuff.h"
int debug_agent = 0;
-#ifdef GDBSERVER
-#define DEBUG_AGENT(fmt, args...) \
- if (debug_agent) \
- fprintf (stderr, fmt, ##args);
-#else
-#define DEBUG_AGENT(fmt, args...) \
- if (debug_agent) \
- fprintf_unfiltered (gdb_stdlog, fmt, ##args);
-#endif
+/* A stdarg wrapper for debug_vprintf. */
+
+static void ATTRIBUTE_PRINTF (1, 2)
+debug_agent_printf (const char *fmt, ...)
+{
+ va_list ap;
+
+ if (!debug_agent)
+ return;
+ va_start (ap, fmt);
+ debug_vprintf (fmt, ap);
+ va_end (ap);
+}
+
+#define DEBUG_AGENT debug_agent_printf
/* Global flag to determine using agent or not. */
int use_agent = 0;
if (look_up_one_symbol (symbol_list[i].name, addrp, 1) == 0)
#else
- struct minimal_symbol *sym =
+ struct bound_minimal_symbol sym =
lookup_minimal_symbol (symbol_list[i].name, NULL,
(struct objfile *) arg);
- if (sym != NULL)
- *addrp = SYMBOL_VALUE_ADDRESS (sym);
+ if (sym.minsym != NULL)
+ *addrp = BMSYMBOL_VALUE_ADDRESS (sym);
else
#endif
{
(unsigned char *) &helper_thread_id,
sizeof helper_thread_id))
#else
- enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch);
+ enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
gdb_byte buf[4];
if (target_read_memory (ipa_sym_addrs.addr_helper_thread_id,
if (res >= UNIX_PATH_MAX)
return -1;
- res = fd = socket (PF_UNIX, SOCK_STREAM, 0);
+ res = fd = gdb_socket_cloexec (PF_UNIX, SOCK_STREAM, 0);
if (res == -1)
{
warning (_("error opening sync socket: %s"), strerror (errno));
int ret = write_inferior_memory (ipa_sym_addrs.addr_cmd_buf,
(const unsigned char *) cmd, len);
#else
- int ret = target_write_memory (ipa_sym_addrs.addr_cmd_buf, cmd, len);
+ int ret = target_write_memory (ipa_sym_addrs.addr_cmd_buf,
+ (gdb_byte *) cmd, len);
#endif
if (ret != 0)
(unsigned char *) &agent_capability,
sizeof agent_capability))
#else
- enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch);
+ enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
gdb_byte buf[4];
if (target_read_memory (ipa_sym_addrs.addr_capability,