X-Git-Url: http://drtracing.org/?a=blobdiff_plain;ds=sidebyside;f=gdb%2Fgdbserver%2Flinux-low.h;h=91061447cc6c055f2e86f9b5baed7bedac758e05;hb=6afd337d1a1a789b71d77b157529c08250eb9093;hp=0d9eb4008c44e133e4df7492b9f437c8af29b3ac;hpb=4d18591be953e2faeaaa280484d375fe05857770;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdbserver/linux-low.h b/gdb/gdbserver/linux-low.h index 0d9eb4008c..91061447cc 100644 --- a/gdb/gdbserver/linux-low.h +++ b/gdb/gdbserver/linux-low.h @@ -1,5 +1,5 @@ /* Internal interfaces for the GNU/Linux specific target code for gdbserver. - Copyright (C) 2002-2016 Free Software Foundation, Inc. + Copyright (C) 2002-2017 Free Software Foundation, Inc. This file is part of GDB. @@ -26,6 +26,7 @@ /* Included for ptrace type definitions. */ #include "nat/linux-ptrace.h" #include "target/waitstatus.h" /* For enum target_stop_reason. */ +#include "tracepoint.h" #define PTRACE_XFER_TYPE long @@ -154,7 +155,7 @@ struct linux_target_ops const gdb_byte *(*sw_breakpoint_from_kind) (int kind, int *size); /* Find the next possible PCs after the current instruction executes. */ - VEC (CORE_ADDR) *(*get_next_pcs) (struct regcache *regcache); + std::vector (*get_next_pcs) (struct regcache *regcache); int decr_pc_after_break; int (*breakpoint_at) (CORE_ADDR pc); @@ -181,7 +182,7 @@ struct linux_target_ops Returns true if any conversion was done; false otherwise. If DIRECTION is 1, then copy from INF to NATIVE. If DIRECTION is 0, copy from NATIVE to INF. */ - int (*siginfo_fixup) (siginfo_t *native, void *inf, int direction); + int (*siginfo_fixup) (siginfo_t *native, gdb_byte *inf, int direction); /* Hook to call when a new process is created or attached to. If extra per-process architecture-specific data is needed, @@ -241,16 +242,17 @@ struct linux_target_ops /* See target.h. */ int (*supports_hardware_single_step) (void); - /* Fill *SYSNO with the syscall nr trapped. Fill *SYSRET with the - return code. Only to be called when inferior is stopped - due to SYSCALL_SIGTRAP. */ - void (*get_syscall_trapinfo) (struct regcache *regcache, - int *sysno, int *sysret); + /* Fill *SYSNO with the syscall nr trapped. Only to be called when + inferior is stopped due to SYSCALL_SIGTRAP. */ + void (*get_syscall_trapinfo) (struct regcache *regcache, int *sysno); + + /* See target.h. */ + int (*get_ipa_tdesc_idx) (void); }; extern struct linux_target_ops the_low_target; -#define get_thread_lwp(thr) ((struct lwp_info *) (inferior_target_data (thr))) +#define get_thread_lwp(thr) ((struct lwp_info *) (thread_target_data (thr))) #define get_lwp_thread(lwp) ((lwp)->thread) /* This struct is recorded in the target_data field of struct thread_info. @@ -300,6 +302,12 @@ struct lwp_info information or exit status until it can be reported to GDB. */ struct target_waitstatus waitstatus; + /* A pointer to the fork child/parent relative. Valid only while + the parent fork event is not reported to higher layers. Used to + avoid wildcard vCont actions resuming a fork child before GDB is + notified about the parent's fork event. */ + struct lwp_info *fork_relative; + /* When stopped is set, this is where the lwp last stopped, with decr_pc_after_break already accounted for. If the LWP is running, this is the address at which the lwp was resumed. */ @@ -346,12 +354,11 @@ struct lwp_info and then processed and cleared in linux_resume_one_lwp. */ struct thread_resume *resume; - /* True if it is known that this lwp is presently collecting a fast - tracepoint (it is in the jump pad or in some code that will - return to the jump pad. Normally, we won't care about this, but - we will if a signal arrives to this lwp while it is - collecting. */ - int collecting_fast_tracepoint; + /* Information bout this lwp's fast tracepoint collection status (is it + currently stopped in the jump pad, and if so, before or at/after the + relocated instruction). Normally, we won't care about this, but we will + if a signal arrives to this lwp while it is collecting. */ + fast_tpoint_collect_result collecting_fast_tracepoint; /* If this is non-zero, it points to a chain of signals which need to be reported to GDB. These were deferred because the thread @@ -362,10 +369,6 @@ struct lwp_info a exit-jump-pad-quickly breakpoint. This is it. */ struct breakpoint *exit_jump_pad_bkpt; - /* True if the LWP was seen stop at an internal breakpoint and needs - stepping over later when it is resumed. */ - int need_step_over; - #ifdef USE_THREAD_DB int thread_known; /* The thread handle, used for e.g. TLS access. Only valid if