X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gdb%2Ftarget.h;h=558be4637554b477929e7e1c67da2b06a100b48b;hb=038805cf977f130d343704c10c7873b556daa314;hp=12851f267409a75860bab3345051d00e007b0a36;hpb=a388ab0b863a07ddb37d1e98ae8e7443ab85746c;p=binutils-gdb.git diff --git a/gdb/target.h b/gdb/target.h index 12851f26740..558be463755 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -43,8 +43,8 @@ struct inferior; make-target-delegates.py to parse. */ typedef const gdb_byte const_gdb_byte; -#include "infrun.h" /* For enum exec_direction_kind. */ -#include "breakpoint.h" /* For enum bptype. */ +#include "infrun.h" +#include "breakpoint.h" #include "gdbsupport/scoped_restore.h" #include "gdbsupport/refcounted-object.h" #include "target-section.h" @@ -88,7 +88,7 @@ typedef const gdb_byte const_gdb_byte; #include "gdbsupport/fileio.h" #include "gdbsupport/x86-xstate.h" -#include "gdbsupport/break-common.h" /* For enum target_hw_bp_type. */ +#include "gdbsupport/break-common.h" enum strata { @@ -642,6 +642,13 @@ struct target_ops TARGET_DEFAULT_RETURN (1); virtual void follow_fork (inferior *, ptid_t, target_waitkind, bool, bool) TARGET_DEFAULT_FUNC (default_follow_fork); + + /* Add CHILD_PTID to the thread list, after handling a + TARGET_WAITKIND_THREAD_CLONE event for the clone parent. The + parent is inferior_ptid. */ + virtual void follow_clone (ptid_t child_ptid) + TARGET_DEFAULT_FUNC (default_follow_clone); + virtual int insert_exec_catchpoint (int) TARGET_DEFAULT_RETURN (1); virtual int remove_exec_catchpoint (int) @@ -698,7 +705,7 @@ struct target_ops TARGET_DEFAULT_RETURN (NULL); virtual void log_command (const char *) TARGET_DEFAULT_IGNORE (); - virtual const target_section_table *get_section_table () + virtual const std::vector *get_section_table () TARGET_DEFAULT_RETURN (default_get_section_table ()); /* Provide default values for all "must have" methods. */ @@ -734,6 +741,10 @@ struct target_ops TARGET_DEFAULT_RETURN (false); virtual void thread_events (int) TARGET_DEFAULT_IGNORE (); + /* Returns true if the target supports setting thread options + OPTIONS, false otherwise. */ + virtual bool supports_set_thread_options (gdb_thread_options options) + TARGET_DEFAULT_RETURN (false); /* This method must be implemented in some situations. See the comment on 'can_run'. */ virtual bool supports_non_stop () @@ -934,7 +945,7 @@ struct target_ops the target is currently stopped at. The architecture information is used to perform decr_pc_after_break adjustment, and also to determine the frame architecture of the innermost frame. ptrace operations need to - operate according to target_gdbarch (). */ + operate according to the current inferior's gdbarch. */ virtual struct gdbarch *thread_architecture (ptid_t) TARGET_DEFAULT_RETURN (NULL); @@ -1043,7 +1054,7 @@ struct target_ops virtual int get_trace_status (struct trace_status *ts) TARGET_DEFAULT_RETURN (-1); - virtual void get_tracepoint_status (struct breakpoint *tp, + virtual void get_tracepoint_status (tracepoint *tp, struct uploaded_tp *utp) TARGET_DEFAULT_NORETURN (tcomplain ()); @@ -1888,6 +1899,10 @@ extern void target_async (bool enable); /* Enables/disables thread create and exit events. */ extern void target_thread_events (int enable); +/* Returns true if the target supports setting thread options + OPTIONS. */ +extern bool target_supports_set_thread_options (gdb_thread_options options); + /* Whether support for controlling the target backends always in non-stop mode is enabled. */ extern enum auto_boolean target_non_stop_enabled; @@ -2255,7 +2270,7 @@ extern void target_trace_set_readonly_regions (); extern int target_get_trace_status (trace_status *ts); -extern void target_get_tracepoint_status (breakpoint *tp, uploaded_tp *utp); +extern void target_get_tracepoint_status (tracepoint *tp, uploaded_tp *utp); extern void target_trace_stop (); @@ -2401,12 +2416,12 @@ const struct target_section *target_section_by_addr (struct target_ops *target, /* Return the target section table this target (or the targets beneath) currently manipulate. */ -extern const target_section_table *target_get_section_table +extern const std::vector *target_get_section_table (struct target_ops *target); /* Default implementation of get_section_table for dummy_target. */ -extern const target_section_table *default_get_section_table (); +extern const std::vector *default_get_section_table (); /* From mem-break.c */ @@ -2477,6 +2492,10 @@ extern int remote_timeout; extern scoped_restore_tmpl make_scoped_restore_show_memory_breakpoints (int show); +/* True if we should trust readonly sections from the + executable when reading memory. */ +extern bool trust_readonly; + extern bool may_write_registers; extern bool may_write_memory; extern bool may_insert_breakpoints;