mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-24 16:27:27 +00:00
gdb, gdbserver: update thread identifier in enable_btrace target method
The enable_btrace target method takes a ptid_t to identify the thread on which tracing shall be enabled. Change this to thread_info * to avoid translating back and forth between the two. This will be used in a subsequent patch.
This commit is contained in:
@@ -1618,7 +1618,7 @@ btrace_enable (struct thread_info *tp, const struct btrace_config *conf)
|
|||||||
DEBUG ("enable thread %s (%s)", print_thread_id (tp),
|
DEBUG ("enable thread %s (%s)", print_thread_id (tp),
|
||||||
tp->ptid.to_string ().c_str ());
|
tp->ptid.to_string ().c_str ());
|
||||||
|
|
||||||
tp->btrace.target = target_enable_btrace (tp->ptid, conf);
|
tp->btrace.target = target_enable_btrace (tp, conf);
|
||||||
|
|
||||||
if (tp->btrace.target == NULL)
|
if (tp->btrace.target == NULL)
|
||||||
error (_("Failed to enable recording on thread %s (%s)."),
|
error (_("Failed to enable recording on thread %s (%s)."),
|
||||||
|
|||||||
@@ -120,12 +120,16 @@ struct ravenscar_thread_target final : public target_ops
|
|||||||
|
|
||||||
ptid_t get_ada_task_ptid (long lwp, ULONGEST thread) override;
|
ptid_t get_ada_task_ptid (long lwp, ULONGEST thread) override;
|
||||||
|
|
||||||
struct btrace_target_info *enable_btrace (ptid_t ptid,
|
struct btrace_target_info *enable_btrace (thread_info *tp,
|
||||||
const struct btrace_config *conf)
|
const struct btrace_config *conf)
|
||||||
override
|
override
|
||||||
{
|
{
|
||||||
ptid = get_base_thread_from_ravenscar_task (ptid);
|
process_stratum_target *proc_target
|
||||||
return beneath ()->enable_btrace (ptid, conf);
|
= as_process_stratum_target (this->beneath ());
|
||||||
|
ptid_t underlying = get_base_thread_from_ravenscar_task (tp->ptid);
|
||||||
|
tp = find_thread_ptid (proc_target, underlying);
|
||||||
|
|
||||||
|
return beneath ()->enable_btrace (tp, conf);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mourn_inferior () override;
|
void mourn_inferior () override;
|
||||||
|
|||||||
@@ -658,8 +658,8 @@ public:
|
|||||||
bool use_agent (bool use) override;
|
bool use_agent (bool use) override;
|
||||||
bool can_use_agent () override;
|
bool can_use_agent () override;
|
||||||
|
|
||||||
struct btrace_target_info *enable_btrace (ptid_t ptid,
|
struct btrace_target_info *
|
||||||
const struct btrace_config *conf) override;
|
enable_btrace (thread_info *tp, const struct btrace_config *conf) override;
|
||||||
|
|
||||||
void disable_btrace (struct btrace_target_info *tinfo) override;
|
void disable_btrace (struct btrace_target_info *tinfo) override;
|
||||||
|
|
||||||
@@ -14178,7 +14178,8 @@ remote_target::remote_btrace_maybe_reopen ()
|
|||||||
/* Enable branch tracing. */
|
/* Enable branch tracing. */
|
||||||
|
|
||||||
struct btrace_target_info *
|
struct btrace_target_info *
|
||||||
remote_target::enable_btrace (ptid_t ptid, const struct btrace_config *conf)
|
remote_target::enable_btrace (thread_info *tp,
|
||||||
|
const struct btrace_config *conf)
|
||||||
{
|
{
|
||||||
struct btrace_target_info *tinfo = NULL;
|
struct btrace_target_info *tinfo = NULL;
|
||||||
struct packet_config *packet = NULL;
|
struct packet_config *packet = NULL;
|
||||||
@@ -14202,6 +14203,7 @@ remote_target::enable_btrace (ptid_t ptid, const struct btrace_config *conf)
|
|||||||
|
|
||||||
btrace_sync_conf (conf);
|
btrace_sync_conf (conf);
|
||||||
|
|
||||||
|
ptid_t ptid = tp->ptid;
|
||||||
set_general_thread (ptid);
|
set_general_thread (ptid);
|
||||||
|
|
||||||
buf += xsnprintf (buf, endbuf - buf, "%s", packet->name);
|
buf += xsnprintf (buf, endbuf - buf, "%s", packet->name);
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ struct dummy_target : public target_ops
|
|||||||
traceframe_info_up traceframe_info () override;
|
traceframe_info_up traceframe_info () override;
|
||||||
bool use_agent (bool arg0) override;
|
bool use_agent (bool arg0) override;
|
||||||
bool can_use_agent () override;
|
bool can_use_agent () override;
|
||||||
struct btrace_target_info *enable_btrace (ptid_t arg0, const struct btrace_config *arg1) override;
|
struct btrace_target_info *enable_btrace (thread_info *arg0, const struct btrace_config *arg1) override;
|
||||||
void disable_btrace (struct btrace_target_info *arg0) override;
|
void disable_btrace (struct btrace_target_info *arg0) override;
|
||||||
void teardown_btrace (struct btrace_target_info *arg0) override;
|
void teardown_btrace (struct btrace_target_info *arg0) override;
|
||||||
enum btrace_error read_btrace (struct btrace_data *arg0, struct btrace_target_info *arg1, enum btrace_read_type arg2) override;
|
enum btrace_error read_btrace (struct btrace_data *arg0, struct btrace_target_info *arg1, enum btrace_read_type arg2) override;
|
||||||
@@ -319,7 +319,7 @@ struct debug_target : public target_ops
|
|||||||
traceframe_info_up traceframe_info () override;
|
traceframe_info_up traceframe_info () override;
|
||||||
bool use_agent (bool arg0) override;
|
bool use_agent (bool arg0) override;
|
||||||
bool can_use_agent () override;
|
bool can_use_agent () override;
|
||||||
struct btrace_target_info *enable_btrace (ptid_t arg0, const struct btrace_config *arg1) override;
|
struct btrace_target_info *enable_btrace (thread_info *arg0, const struct btrace_config *arg1) override;
|
||||||
void disable_btrace (struct btrace_target_info *arg0) override;
|
void disable_btrace (struct btrace_target_info *arg0) override;
|
||||||
void teardown_btrace (struct btrace_target_info *arg0) override;
|
void teardown_btrace (struct btrace_target_info *arg0) override;
|
||||||
enum btrace_error read_btrace (struct btrace_data *arg0, struct btrace_target_info *arg1, enum btrace_read_type arg2) override;
|
enum btrace_error read_btrace (struct btrace_data *arg0, struct btrace_target_info *arg1, enum btrace_read_type arg2) override;
|
||||||
@@ -3761,25 +3761,25 @@ debug_target::can_use_agent ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct btrace_target_info *
|
struct btrace_target_info *
|
||||||
target_ops::enable_btrace (ptid_t arg0, const struct btrace_config *arg1)
|
target_ops::enable_btrace (thread_info *arg0, const struct btrace_config *arg1)
|
||||||
{
|
{
|
||||||
return this->beneath ()->enable_btrace (arg0, arg1);
|
return this->beneath ()->enable_btrace (arg0, arg1);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct btrace_target_info *
|
struct btrace_target_info *
|
||||||
dummy_target::enable_btrace (ptid_t arg0, const struct btrace_config *arg1)
|
dummy_target::enable_btrace (thread_info *arg0, const struct btrace_config *arg1)
|
||||||
{
|
{
|
||||||
tcomplain ();
|
tcomplain ();
|
||||||
}
|
}
|
||||||
|
|
||||||
struct btrace_target_info *
|
struct btrace_target_info *
|
||||||
debug_target::enable_btrace (ptid_t arg0, const struct btrace_config *arg1)
|
debug_target::enable_btrace (thread_info *arg0, const struct btrace_config *arg1)
|
||||||
{
|
{
|
||||||
struct btrace_target_info * result;
|
struct btrace_target_info * result;
|
||||||
fprintf_unfiltered (gdb_stdlog, "-> %s->enable_btrace (...)\n", this->beneath ()->shortname ());
|
fprintf_unfiltered (gdb_stdlog, "-> %s->enable_btrace (...)\n", this->beneath ()->shortname ());
|
||||||
result = this->beneath ()->enable_btrace (arg0, arg1);
|
result = this->beneath ()->enable_btrace (arg0, arg1);
|
||||||
fprintf_unfiltered (gdb_stdlog, "<- %s->enable_btrace (", this->beneath ()->shortname ());
|
fprintf_unfiltered (gdb_stdlog, "<- %s->enable_btrace (", this->beneath ()->shortname ());
|
||||||
target_debug_print_ptid_t (arg0);
|
target_debug_print_thread_info_p (arg0);
|
||||||
fputs_unfiltered (", ", gdb_stdlog);
|
fputs_unfiltered (", ", gdb_stdlog);
|
||||||
target_debug_print_const_struct_btrace_config_p (arg1);
|
target_debug_print_const_struct_btrace_config_p (arg1);
|
||||||
fputs_unfiltered (") = ", gdb_stdlog);
|
fputs_unfiltered (") = ", gdb_stdlog);
|
||||||
|
|||||||
@@ -4060,9 +4060,9 @@ target_ranged_break_num_registers (void)
|
|||||||
/* See target.h. */
|
/* See target.h. */
|
||||||
|
|
||||||
struct btrace_target_info *
|
struct btrace_target_info *
|
||||||
target_enable_btrace (ptid_t ptid, const struct btrace_config *conf)
|
target_enable_btrace (thread_info *tp, const struct btrace_config *conf)
|
||||||
{
|
{
|
||||||
return current_inferior ()->top_target ()->enable_btrace (ptid, conf);
|
return current_inferior ()->top_target ()->enable_btrace (tp, conf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* See target.h. */
|
/* See target.h. */
|
||||||
|
|||||||
@@ -1151,10 +1151,10 @@ struct target_ops
|
|||||||
virtual bool can_use_agent ()
|
virtual bool can_use_agent ()
|
||||||
TARGET_DEFAULT_RETURN (false);
|
TARGET_DEFAULT_RETURN (false);
|
||||||
|
|
||||||
/* Enable branch tracing for PTID using CONF configuration.
|
/* Enable branch tracing for TP using CONF configuration.
|
||||||
Return a branch trace target information struct for reading and for
|
Return a branch trace target information struct for reading and for
|
||||||
disabling branch trace. */
|
disabling branch trace. */
|
||||||
virtual struct btrace_target_info *enable_btrace (ptid_t ptid,
|
virtual struct btrace_target_info *enable_btrace (thread_info *tp,
|
||||||
const struct btrace_config *conf)
|
const struct btrace_config *conf)
|
||||||
TARGET_DEFAULT_NORETURN (tcomplain ());
|
TARGET_DEFAULT_NORETURN (tcomplain ());
|
||||||
|
|
||||||
@@ -2502,7 +2502,7 @@ extern void update_target_permissions (void);
|
|||||||
|
|
||||||
/* See to_enable_btrace in struct target_ops. */
|
/* See to_enable_btrace in struct target_ops. */
|
||||||
extern struct btrace_target_info *
|
extern struct btrace_target_info *
|
||||||
target_enable_btrace (ptid_t ptid, const struct btrace_config *);
|
target_enable_btrace (thread_info *tp, const struct btrace_config *);
|
||||||
|
|
||||||
/* See to_disable_btrace in struct target_ops. */
|
/* See to_disable_btrace in struct target_ops. */
|
||||||
extern void target_disable_btrace (struct btrace_target_info *btinfo);
|
extern void target_disable_btrace (struct btrace_target_info *btinfo);
|
||||||
|
|||||||
@@ -212,10 +212,11 @@ x86_linux_nat_target::read_description ()
|
|||||||
/* Enable branch tracing. */
|
/* Enable branch tracing. */
|
||||||
|
|
||||||
struct btrace_target_info *
|
struct btrace_target_info *
|
||||||
x86_linux_nat_target::enable_btrace (ptid_t ptid,
|
x86_linux_nat_target::enable_btrace (thread_info *tp,
|
||||||
const struct btrace_config *conf)
|
const struct btrace_config *conf)
|
||||||
{
|
{
|
||||||
struct btrace_target_info *tinfo = nullptr;
|
struct btrace_target_info *tinfo = nullptr;
|
||||||
|
ptid_t ptid = tp->ptid;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
tinfo = linux_enable_btrace (ptid, conf);
|
tinfo = linux_enable_btrace (ptid, conf);
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ struct x86_linux_nat_target : public x86_nat_target<linux_nat_target>
|
|||||||
/* Add the description reader. */
|
/* Add the description reader. */
|
||||||
const struct target_desc *read_description () override;
|
const struct target_desc *read_description () override;
|
||||||
|
|
||||||
struct btrace_target_info *enable_btrace (ptid_t ptid,
|
struct btrace_target_info *enable_btrace (thread_info *tp,
|
||||||
const struct btrace_config *conf) override;
|
const struct btrace_config *conf) override;
|
||||||
void disable_btrace (struct btrace_target_info *tinfo) override;
|
void disable_btrace (struct btrace_target_info *tinfo) override;
|
||||||
void teardown_btrace (struct btrace_target_info *tinfo) override;
|
void teardown_btrace (struct btrace_target_info *tinfo) override;
|
||||||
|
|||||||
@@ -6669,10 +6669,10 @@ linux_process_target::qxfer_libraries_svr4 (const char *annex,
|
|||||||
#ifdef HAVE_LINUX_BTRACE
|
#ifdef HAVE_LINUX_BTRACE
|
||||||
|
|
||||||
btrace_target_info *
|
btrace_target_info *
|
||||||
linux_process_target::enable_btrace (ptid_t ptid,
|
linux_process_target::enable_btrace (thread_info *tp,
|
||||||
const btrace_config *conf)
|
const btrace_config *conf)
|
||||||
{
|
{
|
||||||
return linux_enable_btrace (ptid, conf);
|
return linux_enable_btrace (tp->id, conf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* See to_disable_btrace target method. */
|
/* See to_disable_btrace target method. */
|
||||||
|
|||||||
@@ -276,7 +276,7 @@ public:
|
|||||||
bool supports_agent () override;
|
bool supports_agent () override;
|
||||||
|
|
||||||
#ifdef HAVE_LINUX_BTRACE
|
#ifdef HAVE_LINUX_BTRACE
|
||||||
btrace_target_info *enable_btrace (ptid_t ptid,
|
btrace_target_info *enable_btrace (thread_info *tp,
|
||||||
const btrace_config *conf) override;
|
const btrace_config *conf) override;
|
||||||
|
|
||||||
int disable_btrace (btrace_target_info *tinfo) override;
|
int disable_btrace (btrace_target_info *tinfo) override;
|
||||||
|
|||||||
@@ -409,7 +409,7 @@ handle_btrace_enable_bts (struct thread_info *thread)
|
|||||||
error (_("Btrace already enabled."));
|
error (_("Btrace already enabled."));
|
||||||
|
|
||||||
current_btrace_conf.format = BTRACE_FORMAT_BTS;
|
current_btrace_conf.format = BTRACE_FORMAT_BTS;
|
||||||
thread->btrace = target_enable_btrace (thread->id, ¤t_btrace_conf);
|
thread->btrace = target_enable_btrace (thread, ¤t_btrace_conf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle btrace enabling in Intel Processor Trace format. */
|
/* Handle btrace enabling in Intel Processor Trace format. */
|
||||||
@@ -421,7 +421,7 @@ handle_btrace_enable_pt (struct thread_info *thread)
|
|||||||
error (_("Btrace already enabled."));
|
error (_("Btrace already enabled."));
|
||||||
|
|
||||||
current_btrace_conf.format = BTRACE_FORMAT_PT;
|
current_btrace_conf.format = BTRACE_FORMAT_PT;
|
||||||
thread->btrace = target_enable_btrace (thread->id, ¤t_btrace_conf);
|
thread->btrace = target_enable_btrace (thread, ¤t_btrace_conf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle btrace disabling. */
|
/* Handle btrace disabling. */
|
||||||
|
|||||||
@@ -736,7 +736,8 @@ process_stratum_target::supports_agent ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
btrace_target_info *
|
btrace_target_info *
|
||||||
process_stratum_target::enable_btrace (ptid_t ptid, const btrace_config *conf)
|
process_stratum_target::enable_btrace (thread_info *tp,
|
||||||
|
const btrace_config *conf)
|
||||||
{
|
{
|
||||||
error (_("Target does not support branch tracing."));
|
error (_("Target does not support branch tracing."));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -403,9 +403,9 @@ public:
|
|||||||
/* Return true if target supports debugging agent. */
|
/* Return true if target supports debugging agent. */
|
||||||
virtual bool supports_agent ();
|
virtual bool supports_agent ();
|
||||||
|
|
||||||
/* Enable branch tracing for PTID based on CONF and allocate a branch trace
|
/* Enable branch tracing for TP based on CONF and allocate a branch trace
|
||||||
target information struct for reading and for disabling branch trace. */
|
target information struct for reading and for disabling branch trace. */
|
||||||
virtual btrace_target_info *enable_btrace (ptid_t ptid,
|
virtual btrace_target_info *enable_btrace (thread_info *tp,
|
||||||
const btrace_config *conf);
|
const btrace_config *conf);
|
||||||
|
|
||||||
/* Disable branch tracing.
|
/* Disable branch tracing.
|
||||||
@@ -635,9 +635,9 @@ int kill_inferior (process_info *proc);
|
|||||||
the_target->supports_agent ()
|
the_target->supports_agent ()
|
||||||
|
|
||||||
static inline struct btrace_target_info *
|
static inline struct btrace_target_info *
|
||||||
target_enable_btrace (ptid_t ptid, const struct btrace_config *conf)
|
target_enable_btrace (thread_info *tp, const struct btrace_config *conf)
|
||||||
{
|
{
|
||||||
return the_target->enable_btrace (ptid, conf);
|
return the_target->enable_btrace (tp, conf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
|
|||||||
Reference in New Issue
Block a user