X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fgdbarch.h;h=04c8920582cde690ff69963032e4a7a27c4714b8;hb=2bd7c093f663139ad9e57ddc748ade12f6bfbe01;hp=aeafd4ab7244553a117ce41e63d1ec0ecbbee839;hpb=24568a2cd9b1422f582b6f9c004ebd67ffadcb90;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index aeafd4ab72..04c8920582 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -591,9 +591,6 @@ typedef void (gdbarch_coff_make_msymbol_special_ftype) (int val, struct minimal_ extern void gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch, int val, struct minimal_symbol *msym); extern void set_gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch, gdbarch_coff_make_msymbol_special_ftype *coff_make_msymbol_special); -extern const char * gdbarch_name_of_malloc (struct gdbarch *gdbarch); -extern void set_gdbarch_name_of_malloc (struct gdbarch *gdbarch, const char * name_of_malloc); - extern int gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch); extern void set_gdbarch_cannot_step_breakpoint (struct gdbarch *gdbarch, int cannot_step_breakpoint); @@ -641,6 +638,15 @@ typedef const struct regset * (gdbarch_regset_from_core_section_ftype) (struct g extern const struct regset * gdbarch_regset_from_core_section (struct gdbarch *gdbarch, const char *sect_name, size_t sect_size); extern void set_gdbarch_regset_from_core_section (struct gdbarch *gdbarch, gdbarch_regset_from_core_section_ftype *regset_from_core_section); +/* When creating core dumps, some systems encode the PID in addition + to the LWP id in core file register section names. In those cases, the + "XXX" in ".reg/XXX" is encoded as [LWPID << 16 | PID]. This setting + is set to true for such architectures; false if "XXX" represents an LWP + or thread id with no special encoding. */ + +extern int gdbarch_core_reg_section_encodes_pid (struct gdbarch *gdbarch); +extern void set_gdbarch_core_reg_section_encodes_pid (struct gdbarch *gdbarch, int core_reg_section_encodes_pid); + /* Supported register notes in a core file. */ extern struct core_regset_section * gdbarch_core_regset_sections (struct gdbarch *gdbarch); @@ -655,6 +661,15 @@ typedef LONGEST (gdbarch_core_xfer_shared_libraries_ftype) (struct gdbarch *gdba extern LONGEST gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, LONGEST len); extern void set_gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdbarch_core_xfer_shared_libraries_ftype *core_xfer_shared_libraries); +/* How the core_stratum layer converts a PTID from a core file to a + string. */ + +extern int gdbarch_core_pid_to_str_p (struct gdbarch *gdbarch); + +typedef char * (gdbarch_core_pid_to_str_ftype) (struct gdbarch *gdbarch, ptid_t ptid); +extern char * gdbarch_core_pid_to_str (struct gdbarch *gdbarch, ptid_t ptid); +extern void set_gdbarch_core_pid_to_str (struct gdbarch *gdbarch, gdbarch_core_pid_to_str_ftype *core_pid_to_str); + /* If the elements of C++ vtables are in-place function descriptors rather than normal function pointers (which may point to code or a descriptor), set this to one. */ @@ -806,6 +821,16 @@ typedef int (gdbarch_target_signal_to_host_ftype) (struct gdbarch *gdbarch, enum extern int gdbarch_target_signal_to_host (struct gdbarch *gdbarch, enum target_signal ts); extern void set_gdbarch_target_signal_to_host (struct gdbarch *gdbarch, gdbarch_target_signal_to_host_ftype *target_signal_to_host); +/* Extra signal info inspection. + + Return a type suitable to inspect extra signal information. */ + +extern int gdbarch_get_siginfo_type_p (struct gdbarch *gdbarch); + +typedef struct type * (gdbarch_get_siginfo_type_ftype) (struct gdbarch *gdbarch); +extern struct type * gdbarch_get_siginfo_type (struct gdbarch *gdbarch); +extern void set_gdbarch_get_siginfo_type (struct gdbarch *gdbarch, gdbarch_get_siginfo_type_ftype *get_siginfo_type); + /* Record architecture-specific information from the symbol table. */ extern int gdbarch_record_special_symbol_p (struct gdbarch *gdbarch); @@ -814,6 +839,15 @@ typedef void (gdbarch_record_special_symbol_ftype) (struct gdbarch *gdbarch, str extern void gdbarch_record_special_symbol (struct gdbarch *gdbarch, struct objfile *objfile, asymbol *sym); extern void set_gdbarch_record_special_symbol (struct gdbarch *gdbarch, gdbarch_record_special_symbol_ftype *record_special_symbol); +/* True if the list of shared libraries is one and only for all + processes, as opposed to a list of shared libraries per inferior. + When this property is true, GDB assumes that since shared libraries + are shared across processes, so is all code. Hence, GDB further + assumes an inserted breakpoint location is visible to all processes. */ + +extern int gdbarch_has_global_solist (struct gdbarch *gdbarch); +extern void set_gdbarch_has_global_solist (struct gdbarch *gdbarch, int has_global_solist); + extern struct gdbarch_tdep *gdbarch_tdep (struct gdbarch *gdbarch);