btrace: add format argument to supports_btrace
Add a format argument to the various supports_btrace functions to check for support of a specific btrace format. This is to prepare for a new format. Removed two redundant calls. The check will be made in the subsequent btrace_enable call. 2015-02-09 Markus Metzger <markus.t.metzger@intel.com> * btrace.c (btrace_enable): Pass BTRACE_FORMAT_BTS. * record-btrace.c (record_btrace_open): Remove call to target_supports_btrace. * remote.c (remote_supports_btrace): Update parameters. * target.c (target_supports_btrace): Update parameters. * target.h (to_supports_btrace, target_supports_btrace): Update parameters. * target-delegates.c: Regenerate. * target-debug.h (target_debug_print_enum_btrace_format): New. * nat/linux-btrace.c (kernel_supports_btrace): Rename into ... (kernel_supports_bts): ... this. Update users. Update warning text. (intel_supports_btrace): Rename into ... (intel_supports_bts): ... this. Update users. (cpu_supports_btrace): Rename into ... (cpu_supports_bts): ... this. Update users. (linux_supports_btrace): Update parameters. Split into this and ... (linux_supports_bts): ... this. * nat/linux-btrace.h (linux_supports_btrace): Update parameters. gdbserver/ * server.c (handle_btrace_general_set): Remove call to target_supports_btrace. (supported_btrace_packets): New. (handle_query): Call supported_btrace_packets. * target.h: include btrace-common.h. (btrace_target_info): Removed. (supports_btrace, target_supports_btrace): Update parameters.
This commit is contained in:
parent
734b0e4bda
commit
043c357797
13 changed files with 120 additions and 53 deletions
|
@ -1,3 +1,25 @@
|
||||||
|
2015-02-09 Markus Metzger <markus.t.metzger@intel.com>
|
||||||
|
|
||||||
|
* btrace.c (btrace_enable): Pass BTRACE_FORMAT_BTS.
|
||||||
|
* record-btrace.c (record_btrace_open): Remove call to
|
||||||
|
target_supports_btrace.
|
||||||
|
* remote.c (remote_supports_btrace): Update parameters.
|
||||||
|
* target.c (target_supports_btrace): Update parameters.
|
||||||
|
* target.h (to_supports_btrace, target_supports_btrace): Update
|
||||||
|
parameters.
|
||||||
|
* target-delegates.c: Regenerate.
|
||||||
|
* target-debug.h (target_debug_print_enum_btrace_format): New.
|
||||||
|
* nat/linux-btrace.c
|
||||||
|
(kernel_supports_btrace): Rename into ...
|
||||||
|
(kernel_supports_bts): ... this. Update users. Update warning text.
|
||||||
|
(intel_supports_btrace): Rename into ...
|
||||||
|
(intel_supports_bts): ... this. Update users.
|
||||||
|
(cpu_supports_btrace): Rename into ...
|
||||||
|
(cpu_supports_bts): ... this. Update users.
|
||||||
|
(linux_supports_btrace): Update parameters. Split into this and ...
|
||||||
|
(linux_supports_bts): ... this.
|
||||||
|
* nat/linux-btrace.h (linux_supports_btrace): Update parameters.
|
||||||
|
|
||||||
2015-02-09 Markus Metzger <markus.t.metzger@intel.com>
|
2015-02-09 Markus Metzger <markus.t.metzger@intel.com>
|
||||||
|
|
||||||
* Makefile.in (SFILES): Add common/btrace-common.c.
|
* Makefile.in (SFILES): Add common/btrace-common.c.
|
||||||
|
|
|
@ -731,7 +731,7 @@ btrace_enable (struct thread_info *tp)
|
||||||
if (tp->btrace.target != NULL)
|
if (tp->btrace.target != NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!target_supports_btrace ())
|
if (!target_supports_btrace (BTRACE_FORMAT_BTS))
|
||||||
error (_("Target does not support branch tracing."));
|
error (_("Target does not support branch tracing."));
|
||||||
|
|
||||||
DEBUG ("enable thread %d (%s)", tp->num, target_pid_to_str (tp->ptid));
|
DEBUG ("enable thread %d (%s)", tp->num, target_pid_to_str (tp->ptid));
|
||||||
|
|
|
@ -1,3 +1,13 @@
|
||||||
|
2015-02-09 Markus Metzger <markus.t.metzger@intel.com>
|
||||||
|
|
||||||
|
* server.c (handle_btrace_general_set): Remove call to
|
||||||
|
target_supports_btrace.
|
||||||
|
(supported_btrace_packets): New.
|
||||||
|
(handle_query): Call supported_btrace_packets.
|
||||||
|
* target.h: include btrace-common.h.
|
||||||
|
(btrace_target_info): Removed.
|
||||||
|
(supports_btrace, target_supports_btrace): Update parameters.
|
||||||
|
|
||||||
2015-02-09 Markus Metzger <markus.t.metzger@intel.com>
|
2015-02-09 Markus Metzger <markus.t.metzger@intel.com>
|
||||||
|
|
||||||
* Makefile.in (SFILES): Add common/btrace-common.c.
|
* Makefile.in (SFILES): Add common/btrace-common.c.
|
||||||
|
|
|
@ -426,12 +426,6 @@ handle_btrace_general_set (char *own_buf)
|
||||||
|
|
||||||
op = own_buf + strlen ("Qbtrace:");
|
op = own_buf + strlen ("Qbtrace:");
|
||||||
|
|
||||||
if (!target_supports_btrace ())
|
|
||||||
{
|
|
||||||
strcpy (own_buf, "E.Target does not support branch tracing.");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ptid_equal (general_thread, null_ptid)
|
if (ptid_equal (general_thread, null_ptid)
|
||||||
|| ptid_equal (general_thread, minus_one_ptid))
|
|| ptid_equal (general_thread, minus_one_ptid))
|
||||||
{
|
{
|
||||||
|
@ -1692,6 +1686,20 @@ crc32 (CORE_ADDR base, int len, unsigned int crc)
|
||||||
return (unsigned long long) crc;
|
return (unsigned long long) crc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Add supported btrace packets to BUF. */
|
||||||
|
|
||||||
|
static void
|
||||||
|
supported_btrace_packets (char *buf)
|
||||||
|
{
|
||||||
|
if (target_supports_btrace (BTRACE_FORMAT_BTS))
|
||||||
|
strcat (buf, ";Qbtrace:bts+");
|
||||||
|
else
|
||||||
|
return;
|
||||||
|
|
||||||
|
strcat (buf, ";Qbtrace:off+");
|
||||||
|
strcat (buf, ";qXfer:btrace:read+");
|
||||||
|
}
|
||||||
|
|
||||||
/* Handle all of the extended 'q' packets. */
|
/* Handle all of the extended 'q' packets. */
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1923,12 +1931,7 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
|
||||||
if (target_supports_agent ())
|
if (target_supports_agent ())
|
||||||
strcat (own_buf, ";QAgent+");
|
strcat (own_buf, ";QAgent+");
|
||||||
|
|
||||||
if (target_supports_btrace ())
|
supported_btrace_packets (own_buf);
|
||||||
{
|
|
||||||
strcat (own_buf, ";Qbtrace:bts+");
|
|
||||||
strcat (own_buf, ";Qbtrace:off+");
|
|
||||||
strcat (own_buf, ";qXfer:btrace:read+");
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,9 +26,9 @@
|
||||||
#include "target/wait.h"
|
#include "target/wait.h"
|
||||||
#include "target/waitstatus.h"
|
#include "target/waitstatus.h"
|
||||||
#include "mem-break.h"
|
#include "mem-break.h"
|
||||||
|
#include "btrace-common.h"
|
||||||
|
|
||||||
struct emit_ops;
|
struct emit_ops;
|
||||||
struct btrace_target_info;
|
|
||||||
struct buffer;
|
struct buffer;
|
||||||
struct process_info;
|
struct process_info;
|
||||||
|
|
||||||
|
@ -355,7 +355,7 @@ struct target_ops
|
||||||
int (*supports_agent) (void);
|
int (*supports_agent) (void);
|
||||||
|
|
||||||
/* Check whether the target supports branch tracing. */
|
/* Check whether the target supports branch tracing. */
|
||||||
int (*supports_btrace) (struct target_ops *);
|
int (*supports_btrace) (struct target_ops *, enum btrace_format);
|
||||||
|
|
||||||
/* Enable branch tracing for @ptid and allocate a branch trace target
|
/* Enable branch tracing for @ptid and allocate a branch trace target
|
||||||
information struct for reading and for disabling branch trace. */
|
information struct for reading and for disabling branch trace. */
|
||||||
|
@ -489,9 +489,9 @@ int kill_inferior (int);
|
||||||
(the_target->supports_agent ? \
|
(the_target->supports_agent ? \
|
||||||
(*the_target->supports_agent) () : 0)
|
(*the_target->supports_agent) () : 0)
|
||||||
|
|
||||||
#define target_supports_btrace() \
|
#define target_supports_btrace(format) \
|
||||||
(the_target->supports_btrace \
|
(the_target->supports_btrace \
|
||||||
? (*the_target->supports_btrace) (the_target) : 0)
|
? (*the_target->supports_btrace) (the_target, format) : 0)
|
||||||
|
|
||||||
#define target_enable_btrace(ptid) \
|
#define target_enable_btrace(ptid) \
|
||||||
(*the_target->enable_btrace) (ptid)
|
(*the_target->enable_btrace) (ptid)
|
||||||
|
|
|
@ -248,10 +248,10 @@ perf_event_read_bts (struct btrace_target_info* tinfo, const uint8_t *begin,
|
||||||
return btrace;
|
return btrace;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check whether the kernel supports branch tracing. */
|
/* Check whether the kernel supports BTS. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
kernel_supports_btrace (void)
|
kernel_supports_bts (void)
|
||||||
{
|
{
|
||||||
struct perf_event_attr attr;
|
struct perf_event_attr attr;
|
||||||
pid_t child, pid;
|
pid_t child, pid;
|
||||||
|
@ -262,14 +262,14 @@ kernel_supports_btrace (void)
|
||||||
switch (child)
|
switch (child)
|
||||||
{
|
{
|
||||||
case -1:
|
case -1:
|
||||||
warning (_("test branch tracing: cannot fork: %s."), strerror (errno));
|
warning (_("test bts: cannot fork: %s."), strerror (errno));
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case 0:
|
case 0:
|
||||||
status = ptrace (PTRACE_TRACEME, 0, NULL, NULL);
|
status = ptrace (PTRACE_TRACEME, 0, NULL, NULL);
|
||||||
if (status != 0)
|
if (status != 0)
|
||||||
{
|
{
|
||||||
warning (_("test branch tracing: cannot PTRACE_TRACEME: %s."),
|
warning (_("test bts: cannot PTRACE_TRACEME: %s."),
|
||||||
strerror (errno));
|
strerror (errno));
|
||||||
_exit (1);
|
_exit (1);
|
||||||
}
|
}
|
||||||
|
@ -277,7 +277,7 @@ kernel_supports_btrace (void)
|
||||||
status = raise (SIGTRAP);
|
status = raise (SIGTRAP);
|
||||||
if (status != 0)
|
if (status != 0)
|
||||||
{
|
{
|
||||||
warning (_("test branch tracing: cannot raise SIGTRAP: %s."),
|
warning (_("test bts: cannot raise SIGTRAP: %s."),
|
||||||
strerror (errno));
|
strerror (errno));
|
||||||
_exit (1);
|
_exit (1);
|
||||||
}
|
}
|
||||||
|
@ -288,14 +288,14 @@ kernel_supports_btrace (void)
|
||||||
pid = waitpid (child, &status, 0);
|
pid = waitpid (child, &status, 0);
|
||||||
if (pid != child)
|
if (pid != child)
|
||||||
{
|
{
|
||||||
warning (_("test branch tracing: bad pid %ld, error: %s."),
|
warning (_("test bts: bad pid %ld, error: %s."),
|
||||||
(long) pid, strerror (errno));
|
(long) pid, strerror (errno));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!WIFSTOPPED (status))
|
if (!WIFSTOPPED (status))
|
||||||
{
|
{
|
||||||
warning (_("test branch tracing: expected stop. status: %d."),
|
warning (_("test bts: expected stop. status: %d."),
|
||||||
status);
|
status);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -320,10 +320,10 @@ kernel_supports_btrace (void)
|
||||||
pid = waitpid (child, &status, 0);
|
pid = waitpid (child, &status, 0);
|
||||||
if (pid != child)
|
if (pid != child)
|
||||||
{
|
{
|
||||||
warning (_("test branch tracing: bad pid %ld, error: %s."),
|
warning (_("test bts: bad pid %ld, error: %s."),
|
||||||
(long) pid, strerror (errno));
|
(long) pid, strerror (errno));
|
||||||
if (!WIFSIGNALED (status))
|
if (!WIFSIGNALED (status))
|
||||||
warning (_("test branch tracing: expected killed. status: %d."),
|
warning (_("test bts: expected killed. status: %d."),
|
||||||
status);
|
status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,10 +331,10 @@ kernel_supports_btrace (void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check whether an Intel cpu supports branch tracing. */
|
/* Check whether an Intel cpu supports BTS. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
intel_supports_btrace (void)
|
intel_supports_bts (void)
|
||||||
{
|
{
|
||||||
unsigned int cpuid, model, family;
|
unsigned int cpuid, model, family;
|
||||||
|
|
||||||
|
@ -372,10 +372,10 @@ intel_supports_btrace (void)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check whether the cpu supports branch tracing. */
|
/* Check whether the cpu supports BTS. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
cpu_supports_btrace (void)
|
cpu_supports_bts (void)
|
||||||
{
|
{
|
||||||
unsigned int ebx, ecx, edx;
|
unsigned int ebx, ecx, edx;
|
||||||
|
|
||||||
|
@ -384,24 +384,24 @@ cpu_supports_btrace (void)
|
||||||
|
|
||||||
if (ebx == signature_INTEL_ebx && ecx == signature_INTEL_ecx
|
if (ebx == signature_INTEL_ebx && ecx == signature_INTEL_ecx
|
||||||
&& edx == signature_INTEL_edx)
|
&& edx == signature_INTEL_edx)
|
||||||
return intel_supports_btrace ();
|
return intel_supports_bts ();
|
||||||
|
|
||||||
/* Don't know about others. Let's assume they do. */
|
/* Don't know about others. Let's assume they do. */
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* See linux-btrace.h. */
|
/* Check whether the linux target supports BTS. */
|
||||||
|
|
||||||
int
|
static int
|
||||||
linux_supports_btrace (struct target_ops *ops)
|
linux_supports_bts (void)
|
||||||
{
|
{
|
||||||
static int cached;
|
static int cached;
|
||||||
|
|
||||||
if (cached == 0)
|
if (cached == 0)
|
||||||
{
|
{
|
||||||
if (!kernel_supports_btrace ())
|
if (!kernel_supports_bts ())
|
||||||
cached = -1;
|
cached = -1;
|
||||||
else if (!cpu_supports_btrace ())
|
else if (!cpu_supports_bts ())
|
||||||
cached = -1;
|
cached = -1;
|
||||||
else
|
else
|
||||||
cached = 1;
|
cached = 1;
|
||||||
|
@ -412,6 +412,23 @@ linux_supports_btrace (struct target_ops *ops)
|
||||||
|
|
||||||
/* See linux-btrace.h. */
|
/* See linux-btrace.h. */
|
||||||
|
|
||||||
|
int
|
||||||
|
linux_supports_btrace (struct target_ops *ops, enum btrace_format format)
|
||||||
|
{
|
||||||
|
switch (format)
|
||||||
|
{
|
||||||
|
case BTRACE_FORMAT_NONE:
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
case BTRACE_FORMAT_BTS:
|
||||||
|
return linux_supports_bts ();
|
||||||
|
}
|
||||||
|
|
||||||
|
internal_error (__FILE__, __LINE__, _("Unknown branch trace format"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* See linux-btrace.h. */
|
||||||
|
|
||||||
struct btrace_target_info *
|
struct btrace_target_info *
|
||||||
linux_enable_btrace (ptid_t ptid)
|
linux_enable_btrace (ptid_t ptid)
|
||||||
{
|
{
|
||||||
|
@ -602,7 +619,7 @@ linux_read_btrace (struct btrace_data *btrace,
|
||||||
/* See linux-btrace.h. */
|
/* See linux-btrace.h. */
|
||||||
|
|
||||||
int
|
int
|
||||||
linux_supports_btrace (struct target_ops *ops)
|
linux_supports_btrace (struct target_ops *ops, enum btrace_format format)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,7 +61,7 @@ struct btrace_target_info
|
||||||
};
|
};
|
||||||
|
|
||||||
/* See to_supports_btrace in target.h. */
|
/* See to_supports_btrace in target.h. */
|
||||||
extern int linux_supports_btrace (struct target_ops *);
|
extern int linux_supports_btrace (struct target_ops *, enum btrace_format);
|
||||||
|
|
||||||
/* See to_enable_btrace in target.h. */
|
/* See to_enable_btrace in target.h. */
|
||||||
extern struct btrace_target_info *linux_enable_btrace (ptid_t ptid);
|
extern struct btrace_target_info *linux_enable_btrace (ptid_t ptid);
|
||||||
|
|
|
@ -199,9 +199,6 @@ record_btrace_open (const char *args, int from_tty)
|
||||||
if (!target_has_execution)
|
if (!target_has_execution)
|
||||||
error (_("The program is not being run."));
|
error (_("The program is not being run."));
|
||||||
|
|
||||||
if (!target_supports_btrace ())
|
|
||||||
error (_("Target does not support branch tracing."));
|
|
||||||
|
|
||||||
if (non_stop)
|
if (non_stop)
|
||||||
error (_("Record btrace can't debug inferior in non-stop mode."));
|
error (_("Record btrace can't debug inferior in non-stop mode."));
|
||||||
|
|
||||||
|
|
15
gdb/remote.c
15
gdb/remote.c
|
@ -11324,16 +11324,23 @@ struct btrace_target_info
|
||||||
/* Check whether the target supports branch tracing. */
|
/* Check whether the target supports branch tracing. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
remote_supports_btrace (struct target_ops *self)
|
remote_supports_btrace (struct target_ops *self, enum btrace_format format)
|
||||||
{
|
{
|
||||||
if (packet_support (PACKET_Qbtrace_off) != PACKET_ENABLE)
|
if (packet_support (PACKET_Qbtrace_off) != PACKET_ENABLE)
|
||||||
return 0;
|
return 0;
|
||||||
if (packet_support (PACKET_Qbtrace_bts) != PACKET_ENABLE)
|
|
||||||
return 0;
|
|
||||||
if (packet_support (PACKET_qXfer_btrace) != PACKET_ENABLE)
|
if (packet_support (PACKET_qXfer_btrace) != PACKET_ENABLE)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return 1;
|
switch (format)
|
||||||
|
{
|
||||||
|
case BTRACE_FORMAT_NONE:
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
case BTRACE_FORMAT_BTS:
|
||||||
|
return (packet_support (PACKET_Qbtrace_bts) == PACKET_ENABLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal_error (__FILE__, __LINE__, _("Unknown branch trace format"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Enable branch tracing. */
|
/* Enable branch tracing. */
|
||||||
|
|
|
@ -146,6 +146,8 @@
|
||||||
target_debug_do_print (host_address_to_string (X))
|
target_debug_do_print (host_address_to_string (X))
|
||||||
#define target_debug_print_struct_btrace_data_p(X) \
|
#define target_debug_print_struct_btrace_data_p(X) \
|
||||||
target_debug_do_print (host_address_to_string (X))
|
target_debug_do_print (host_address_to_string (X))
|
||||||
|
#define target_debug_print_enum_btrace_format(X) \
|
||||||
|
target_debug_do_print (plongest (X))
|
||||||
|
|
||||||
static void
|
static void
|
||||||
target_debug_print_struct_target_waitstatus_p (struct target_waitstatus *status)
|
target_debug_print_struct_target_waitstatus_p (struct target_waitstatus *status)
|
||||||
|
|
|
@ -3085,26 +3085,28 @@ debug_can_use_agent (struct target_ops *self)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
delegate_supports_btrace (struct target_ops *self)
|
delegate_supports_btrace (struct target_ops *self, enum btrace_format arg1)
|
||||||
{
|
{
|
||||||
self = self->beneath;
|
self = self->beneath;
|
||||||
return self->to_supports_btrace (self);
|
return self->to_supports_btrace (self, arg1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
tdefault_supports_btrace (struct target_ops *self)
|
tdefault_supports_btrace (struct target_ops *self, enum btrace_format arg1)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
debug_supports_btrace (struct target_ops *self)
|
debug_supports_btrace (struct target_ops *self, enum btrace_format arg1)
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
fprintf_unfiltered (gdb_stdlog, "-> %s->to_supports_btrace (...)\n", debug_target.to_shortname);
|
fprintf_unfiltered (gdb_stdlog, "-> %s->to_supports_btrace (...)\n", debug_target.to_shortname);
|
||||||
result = debug_target.to_supports_btrace (&debug_target);
|
result = debug_target.to_supports_btrace (&debug_target, arg1);
|
||||||
fprintf_unfiltered (gdb_stdlog, "<- %s->to_supports_btrace (", debug_target.to_shortname);
|
fprintf_unfiltered (gdb_stdlog, "<- %s->to_supports_btrace (", debug_target.to_shortname);
|
||||||
target_debug_print_struct_target_ops_p (&debug_target);
|
target_debug_print_struct_target_ops_p (&debug_target);
|
||||||
|
fputs_unfiltered (", ", gdb_stdlog);
|
||||||
|
target_debug_print_enum_btrace_format (arg1);
|
||||||
fputs_unfiltered (") = ", gdb_stdlog);
|
fputs_unfiltered (") = ", gdb_stdlog);
|
||||||
target_debug_print_int (result);
|
target_debug_print_int (result);
|
||||||
fputs_unfiltered ("\n", gdb_stdlog);
|
fputs_unfiltered ("\n", gdb_stdlog);
|
||||||
|
|
|
@ -3389,6 +3389,14 @@ target_ranged_break_num_registers (void)
|
||||||
|
|
||||||
/* See target.h. */
|
/* See target.h. */
|
||||||
|
|
||||||
|
int
|
||||||
|
target_supports_btrace (enum btrace_format format)
|
||||||
|
{
|
||||||
|
return current_target.to_supports_btrace (¤t_target, format);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* See target.h. */
|
||||||
|
|
||||||
struct btrace_target_info *
|
struct btrace_target_info *
|
||||||
target_enable_btrace (ptid_t ptid)
|
target_enable_btrace (ptid_t ptid)
|
||||||
{
|
{
|
||||||
|
|
|
@ -999,7 +999,7 @@ struct target_ops
|
||||||
TARGET_DEFAULT_RETURN (0);
|
TARGET_DEFAULT_RETURN (0);
|
||||||
|
|
||||||
/* Check whether the target supports branch tracing. */
|
/* Check whether the target supports branch tracing. */
|
||||||
int (*to_supports_btrace) (struct target_ops *)
|
int (*to_supports_btrace) (struct target_ops *, enum btrace_format)
|
||||||
TARGET_DEFAULT_RETURN (0);
|
TARGET_DEFAULT_RETURN (0);
|
||||||
|
|
||||||
/* Enable branch tracing for PTID and allocate a branch trace target
|
/* Enable branch tracing for PTID and allocate a branch trace target
|
||||||
|
@ -2215,8 +2215,7 @@ extern void update_target_permissions (void);
|
||||||
/* Imported from machine dependent code. */
|
/* Imported from machine dependent code. */
|
||||||
|
|
||||||
/* See to_supports_btrace in struct target_ops. */
|
/* See to_supports_btrace in struct target_ops. */
|
||||||
#define target_supports_btrace() \
|
extern int target_supports_btrace (enum btrace_format);
|
||||||
(current_target.to_supports_btrace (¤t_target))
|
|
||||||
|
|
||||||
/* See to_enable_btrace in struct target_ops. */
|
/* See to_enable_btrace in struct target_ops. */
|
||||||
extern struct btrace_target_info *target_enable_btrace (ptid_t ptid);
|
extern struct btrace_target_info *target_enable_btrace (ptid_t ptid);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue