X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fgdbarch.sh;h=d401b4d1e2a579696b60a06aa732c20691ac3f50;hb=819844ad98d84ef944ff721239ba2b55c2a34061;hp=c776e28ad99c58852595c32b9c6d0fd486f43091;hpb=123dc839145c04e57435369a9f2551a505ce0b33;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index c776e28ad9..d401b4d1e2 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -369,9 +369,9 @@ function_list () cat <printable_name # -i:TARGET_BYTE_ORDER:int:byte_order:::BFD_ENDIAN_BIG +i::int:byte_order:::BFD_ENDIAN_BIG # -i:TARGET_OSABI:enum gdb_osabi:osabi:::GDB_OSABI_UNKNOWN +i::enum gdb_osabi:osabi:::GDB_OSABI_UNKNOWN # i::const struct target_desc *:target_desc:::::::paddr_d ((long) current_gdbarch->target_desc) # Number of bits in a char or unsigned char for the target machine. @@ -379,14 +379,14 @@ i::const struct target_desc *:target_desc:::::::paddr_d ((long) current_gdbarch- # v:TARGET_CHAR_BIT:int:char_bit::::8 * sizeof (char):8::0: # # Number of bits in a short or unsigned short for the target machine. -v:TARGET_SHORT_BIT:int:short_bit:::8 * sizeof (short):2*TARGET_CHAR_BIT::0 +v::int:short_bit:::8 * sizeof (short):2*TARGET_CHAR_BIT::0 # Number of bits in an int or unsigned int for the target machine. -v:TARGET_INT_BIT:int:int_bit:::8 * sizeof (int):4*TARGET_CHAR_BIT::0 +v::int:int_bit:::8 * sizeof (int):4*TARGET_CHAR_BIT::0 # Number of bits in a long or unsigned long for the target machine. -v:TARGET_LONG_BIT:int:long_bit:::8 * sizeof (long):4*TARGET_CHAR_BIT::0 +v::int:long_bit:::8 * sizeof (long):4*TARGET_CHAR_BIT::0 # Number of bits in a long long or unsigned long long for the target # machine. -v:TARGET_LONG_LONG_BIT:int:long_long_bit:::8 * sizeof (LONGEST):2*TARGET_LONG_BIT::0 +v::int:long_long_bit:::8 * sizeof (LONGEST):2*current_gdbarch->long_bit::0 # The ABI default bit-size and format for "float", "double", and "long # double". These bit/format pairs should eventually be combined into @@ -394,49 +394,48 @@ v:TARGET_LONG_LONG_BIT:int:long_long_bit:::8 * sizeof (LONGEST):2*TARGET_LONG_BI # Each format describes both the big and little endian layouts (if # useful). -v:TARGET_FLOAT_BIT:int:float_bit:::8 * sizeof (float):4*TARGET_CHAR_BIT::0 -v:TARGET_FLOAT_FORMAT:const struct floatformat **:float_format:::::floatformats_ieee_single::pformat (current_gdbarch->float_format) -v:TARGET_DOUBLE_BIT:int:double_bit:::8 * sizeof (double):8*TARGET_CHAR_BIT::0 -v:TARGET_DOUBLE_FORMAT:const struct floatformat **:double_format:::::floatformats_ieee_double::pformat (current_gdbarch->double_format) -v:TARGET_LONG_DOUBLE_BIT:int:long_double_bit:::8 * sizeof (long double):8*TARGET_CHAR_BIT::0 -v:TARGET_LONG_DOUBLE_FORMAT:const struct floatformat **:long_double_format:::::floatformats_ieee_double::pformat (current_gdbarch->long_double_format) +v::int:float_bit:::8 * sizeof (float):4*TARGET_CHAR_BIT::0 +v::const struct floatformat **:float_format:::::floatformats_ieee_single::pformat (current_gdbarch->float_format) +v::int:double_bit:::8 * sizeof (double):8*TARGET_CHAR_BIT::0 +v::const struct floatformat **:double_format:::::floatformats_ieee_double::pformat (current_gdbarch->double_format) +v::int:long_double_bit:::8 * sizeof (long double):8*TARGET_CHAR_BIT::0 +v::const struct floatformat **:long_double_format:::::floatformats_ieee_double::pformat (current_gdbarch->long_double_format) # For most targets, a pointer on the target and its representation as an # address in GDB have the same size and "look the same". For such a -# target, you need only set TARGET_PTR_BIT / ptr_bit and TARGET_ADDR_BIT +# target, you need only set gdbarch_ptr_bit and TARGET_ADDR_BIT # / addr_bit will be set from it. # -# If TARGET_PTR_BIT and TARGET_ADDR_BIT are different, you'll probably -# also need to set POINTER_TO_ADDRESS and ADDRESS_TO_POINTER as well. +# If gdbarch_ptr_bit and TARGET_ADDR_BIT are different, you'll probably +# also need to set gdbarch_pointer_to_address and gdbarch_address_to_pointer +# as well. # # ptr_bit is the size of a pointer on the target -v:TARGET_PTR_BIT:int:ptr_bit:::8 * sizeof (void*):TARGET_INT_BIT::0 +v::int:ptr_bit:::8 * sizeof (void*):current_gdbarch->int_bit::0 # addr_bit is the size of a target address as represented in gdb -v:TARGET_ADDR_BIT:int:addr_bit:::8 * sizeof (void*):0:TARGET_PTR_BIT: +v:TARGET_ADDR_BIT:int:addr_bit:::8 * sizeof (void*):0:gdbarch_ptr_bit (current_gdbarch): # Number of bits in a BFD_VMA for the target object file format. v:TARGET_BFD_VMA_BIT:int:bfd_vma_bit:::8 * sizeof (void*):TARGET_ARCHITECTURE->bits_per_address::0 # # One if \`char' acts like \`signed char', zero if \`unsigned char'. -v:TARGET_CHAR_SIGNED:int:char_signed:::1:-1:1 +v::int:char_signed:::1:-1:1 # F:TARGET_READ_PC:CORE_ADDR:read_pc:ptid_t ptid:ptid f:TARGET_WRITE_PC:void:write_pc:CORE_ADDR val, ptid_t ptid:val, ptid:0:generic_target_write_pc::0 -# UNWIND_SP is a direct replacement for TARGET_READ_SP. -F:TARGET_READ_SP:CORE_ADDR:read_sp:void # Function for getting target's idea of a frame pointer. FIXME: GDB's # whole scheme for dealing with "frames" and "frame pointers" needs a # serious shakedown. -f:TARGET_VIRTUAL_FRAME_POINTER:void:virtual_frame_pointer:CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset:pc, frame_regnum, frame_offset:0:legacy_virtual_frame_pointer::0 +f::void:virtual_frame_pointer:CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset:pc, frame_regnum, frame_offset:0:legacy_virtual_frame_pointer::0 # M::void:pseudo_register_read:struct regcache *regcache, int cookednum, gdb_byte *buf:regcache, cookednum, buf M::void:pseudo_register_write:struct regcache *regcache, int cookednum, const gdb_byte *buf:regcache, cookednum, buf # -v:=:int:num_regs:::0:-1 +v::int:num_regs:::0:-1 # This macro gives the number of pseudo-registers that live in the # register namespace but do not get fetched or stored on the target. # These pseudo-registers may be aliases for other registers, # combinations of other registers, or they may be computed by GDB. -v:=:int:num_pseudo_regs:::0:0::0 +v::int:num_pseudo_regs:::0:0::0 # GDB's standard (or well known) register numbers. These can map onto # a real register or a pseudo (computed) register or not be defined at @@ -447,28 +446,20 @@ v:=:int:pc_regnum:::-1:-1::0 v:=:int:ps_regnum:::-1:-1::0 v:=:int:fp0_regnum:::0:-1::0 # Convert stab register number (from \`r\' declaration) to a gdb REGNUM. -f:=:int:stab_reg_to_regnum:int stab_regnr:stab_regnr::no_op_reg_to_regnum::0 +f::int:stab_reg_to_regnum:int stab_regnr:stab_regnr::no_op_reg_to_regnum::0 # Provide a default mapping from a ecoff register number to a gdb REGNUM. -f:=:int:ecoff_reg_to_regnum:int ecoff_regnr:ecoff_regnr::no_op_reg_to_regnum::0 +f::int:ecoff_reg_to_regnum:int ecoff_regnr:ecoff_regnr::no_op_reg_to_regnum::0 # Provide a default mapping from a DWARF register number to a gdb REGNUM. -f:=:int:dwarf_reg_to_regnum:int dwarf_regnr:dwarf_regnr::no_op_reg_to_regnum::0 +f::int:dwarf_reg_to_regnum:int dwarf_regnr:dwarf_regnr::no_op_reg_to_regnum::0 # Convert from an sdb register number to an internal gdb register number. -f:=:int:sdb_reg_to_regnum:int sdb_regnr:sdb_regnr::no_op_reg_to_regnum::0 -f:=:int:dwarf2_reg_to_regnum:int dwarf2_regnr:dwarf2_regnr::no_op_reg_to_regnum::0 -f:=:const char *:register_name:int regnr:regnr +f::int:sdb_reg_to_regnum:int sdb_regnr:sdb_regnr::no_op_reg_to_regnum::0 +f::int:dwarf2_reg_to_regnum:int dwarf2_regnr:dwarf2_regnr::no_op_reg_to_regnum::0 +f::const char *:register_name:int regnr:regnr # Return the type of a register specified by the architecture. Only # the register cache should call this function directly; others should # use "register_type". M::struct type *:register_type:int reg_nr:reg_nr -# If the value returned by DEPRECATED_REGISTER_BYTE agrees with the -# register offsets computed using just REGISTER_TYPE, this can be -# deleted. See: maint print registers. NOTE: cagney/2002-05-02: This -# function with predicate has a valid (callable) initial value. As a -# consequence, even when the predicate is false, the corresponding -# function works. This simplifies the migration process - old code, -# calling DEPRECATED_REGISTER_BYTE, doesn't need to be modified. -F:=:int:deprecated_register_byte:int reg_nr:reg_nr:generic_register_byte:generic_register_byte # See gdbint.texinfo, and PUSH_DUMMY_CALL. M::struct frame_id:unwind_dummy_id:struct frame_info *info:info @@ -480,7 +471,7 @@ v:=:int:deprecated_fp_regnum:::-1:-1::0 M::CORE_ADDR:push_dummy_call:struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr:function, regcache, bp_addr, nargs, args, sp, struct_return, struct_addr # DEPRECATED_REGISTER_SIZE can be deleted. v:=:int:deprecated_register_size -v:=:int:call_dummy_location::::AT_ENTRY_POINT::0 +v::int:call_dummy_location::::AT_ENTRY_POINT::0 M::CORE_ADDR:push_dummy_code:CORE_ADDR sp, CORE_ADDR funaddr, int using_gcc, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr:sp, funaddr, using_gcc, args, nargs, value_type, real_pc, bp_addr m::void:print_registers_info:struct ui_file *file, struct frame_info *frame, int regnum, int all:file, frame, regnum, all::default_print_registers_info::0 @@ -488,30 +479,26 @@ M::void:print_float_info:struct ui_file *file, struct frame_info *frame, const c M::void:print_vector_info:struct ui_file *file, struct frame_info *frame, const char *args:file, frame, args # MAP a GDB RAW register number onto a simulator register number. See # also include/...-sim.h. -f:=:int:register_sim_regno:int reg_nr:reg_nr::legacy_register_sim_regno::0 -F:=:int:register_bytes_ok:long nr_bytes:nr_bytes -f:=:int:cannot_fetch_register:int regnum:regnum::cannot_register_not::0 -f:=:int:cannot_store_register:int regnum:regnum::cannot_register_not::0 +f::int:register_sim_regno:int reg_nr:reg_nr::legacy_register_sim_regno::0 +f::int:cannot_fetch_register:int regnum:regnum::cannot_register_not::0 +f::int:cannot_store_register:int regnum:regnum::cannot_register_not::0 # setjmp/longjmp support. -F:=:int:get_longjmp_target:CORE_ADDR *pc:pc +F::int:get_longjmp_target:CORE_ADDR *pc:pc # v:=:int:believe_pcc_promotion::::::: # -f:=:int:convert_register_p:int regnum, struct type *type:regnum, type:0:generic_convert_register_p::0 -f:=:void:register_to_value:struct frame_info *frame, int regnum, struct type *type, gdb_byte *buf:frame, regnum, type, buf:0 -f:=:void:value_to_register:struct frame_info *frame, int regnum, struct type *type, const gdb_byte *buf:frame, regnum, type, buf:0 +f::int:convert_register_p:int regnum, struct type *type:regnum, type:0:generic_convert_register_p::0 +f::void:register_to_value:struct frame_info *frame, int regnum, struct type *type, gdb_byte *buf:frame, regnum, type, buf:0 +f::void:value_to_register:struct frame_info *frame, int regnum, struct type *type, const gdb_byte *buf:frame, regnum, type, buf:0 # Construct a value representing the contents of register REGNUM in # frame FRAME, interpreted as type TYPE. The routine needs to # allocate and return a struct value with all value attributes # (but not the value contents) filled in. f::struct value *:value_from_register:struct type *type, int regnum, struct frame_info *frame:type, regnum, frame::default_value_from_register::0 # -f:=:CORE_ADDR:pointer_to_address:struct type *type, const gdb_byte *buf:type, buf::unsigned_pointer_to_address::0 -f:=:void:address_to_pointer:struct type *type, gdb_byte *buf, CORE_ADDR addr:type, buf, addr::unsigned_address_to_pointer::0 +f::CORE_ADDR:pointer_to_address:struct type *type, const gdb_byte *buf:type, buf::unsigned_pointer_to_address::0 +f::void:address_to_pointer:struct type *type, gdb_byte *buf, CORE_ADDR addr:type, buf, addr::unsigned_address_to_pointer::0 M::CORE_ADDR:integer_to_address:struct type *type, const gdb_byte *buf:type, buf -# -# NOTE: kettenis/2005-09-01: Replaced by PUSH_DUMMY_CALL. -F:=:void:deprecated_store_struct_return:CORE_ADDR addr, CORE_ADDR sp:addr, sp # It has been suggested that this, well actually its predecessor, # should take the type/value of the function to be called and not the @@ -554,13 +541,13 @@ f:=:int:deprecated_use_struct_convention:int gcc_p, struct type *value_type:gcc_ F:=:CORE_ADDR:deprecated_extract_struct_value_address:struct regcache *regcache:regcache # -f:=:CORE_ADDR:skip_prologue:CORE_ADDR ip:ip:0:0 -f:=:int:inner_than:CORE_ADDR lhs, CORE_ADDR rhs:lhs, rhs:0:0 +f::CORE_ADDR:skip_prologue:CORE_ADDR ip:ip:0:0 +f::int:inner_than:CORE_ADDR lhs, CORE_ADDR rhs:lhs, rhs:0:0 f:=:const gdb_byte *:breakpoint_from_pc:CORE_ADDR *pcptr, int *lenptr:pcptr, lenptr::0: M::CORE_ADDR:adjust_breakpoint_address:CORE_ADDR bpaddr:bpaddr -f:=:int:memory_insert_breakpoint:struct bp_target_info *bp_tgt:bp_tgt:0:default_memory_insert_breakpoint::0 -f:=:int:memory_remove_breakpoint:struct bp_target_info *bp_tgt:bp_tgt:0:default_memory_remove_breakpoint::0 -v:=:CORE_ADDR:decr_pc_after_break:::0:::0 +f::int:memory_insert_breakpoint:struct bp_target_info *bp_tgt:bp_tgt:0:default_memory_insert_breakpoint::0 +f::int:memory_remove_breakpoint:struct bp_target_info *bp_tgt:bp_tgt:0:default_memory_remove_breakpoint::0 +v::CORE_ADDR:decr_pc_after_break:::0:::0 # A function can be addressed by either it's "pointer" (possibly a # descriptor address) or "entry point" (first executable instruction). @@ -572,64 +559,64 @@ v:=:CORE_ADDR:decr_pc_after_break:::0:::0 v:=:CORE_ADDR:deprecated_function_start_offset:::0:::0 -m::void:remote_translate_xfer_address:struct regcache *regcache, CORE_ADDR gdb_addr, int gdb_len, CORE_ADDR *rem_addr, int *rem_len:regcache, gdb_addr, gdb_len, rem_addr, rem_len::generic_remote_translate_xfer_address::0 - # Return the remote protocol register number associated with this # register. Normally the identity mapping. m::int:remote_register_number:int regno:regno::default_remote_register_number::0 # Fetch the target specific address used to represent a load module. -F:=:CORE_ADDR:fetch_tls_load_module_address:struct objfile *objfile:objfile +F::CORE_ADDR:fetch_tls_load_module_address:struct objfile *objfile:objfile # -v:=:CORE_ADDR:frame_args_skip:::0:::0 +v::CORE_ADDR:frame_args_skip:::0:::0 M::CORE_ADDR:unwind_pc:struct frame_info *next_frame:next_frame M::CORE_ADDR:unwind_sp:struct frame_info *next_frame:next_frame # DEPRECATED_FRAME_LOCALS_ADDRESS as been replaced by the per-frame # frame-base. Enable frame-base before frame-unwind. -F:=:int:frame_num_args:struct frame_info *frame:frame +F::int:frame_num_args:struct frame_info *frame:frame # -# DEPRECATED_STACK_ALIGN has been replaced by an initial aligning call -# to frame_align and the requirement that methods such as -# push_dummy_call and frame_red_zone_size maintain correct stack/frame -# alignment. -F:=:CORE_ADDR:deprecated_stack_align:CORE_ADDR sp:sp M::CORE_ADDR:frame_align:CORE_ADDR address:address # DEPRECATED_REG_STRUCT_HAS_ADDR has been replaced by # stabs_argument_has_addr. F:=:int:deprecated_reg_struct_has_addr:int gcc_p, struct type *type:gcc_p, type m::int:stabs_argument_has_addr:struct type *type:type::default_stabs_argument_has_addr::0 -v:=:int:frame_red_zone_size +v::int:frame_red_zone_size # m::CORE_ADDR:convert_from_func_ptr_addr:CORE_ADDR addr, struct target_ops *targ:addr, targ::convert_from_func_ptr_addr_identity::0 # On some machines there are bits in addresses which are not really # part of the address, but are used by the kernel, the hardware, etc. -# for special purposes. ADDR_BITS_REMOVE takes out any such bits so +# for special purposes. gdbarch_addr_bits_remove takes out any such bits so # we get a "real" address such as one would find in a symbol table. # This is used only for addresses of instructions, and even then I'm # not sure it's used in all contexts. It exists to deal with there # being a few stray bits in the PC which would mislead us, not as some # sort of generic thing to handle alignment or segmentation (it's # possible it should be in TARGET_READ_PC instead). -f:=:CORE_ADDR:addr_bits_remove:CORE_ADDR addr:addr::core_addr_identity::0 -# It is not at all clear why SMASH_TEXT_ADDRESS is not folded into -# ADDR_BITS_REMOVE. -f:=:CORE_ADDR:smash_text_address:CORE_ADDR addr:addr::core_addr_identity::0 -# FIXME/cagney/2001-01-18: This should be split in two. A target method that indicates if -# the target needs software single step. An ISA method to implement it. +f::CORE_ADDR:addr_bits_remove:CORE_ADDR addr:addr::core_addr_identity::0 +# It is not at all clear why gdbarch_smash_text_address is not folded into +# gdbarch_addr_bits_remove. +f::CORE_ADDR:smash_text_address:CORE_ADDR addr:addr::core_addr_identity::0 + +# FIXME/cagney/2001-01-18: This should be split in two. A target method that +# indicates if the target needs software single step. An ISA method to +# implement it. +# +# FIXME/cagney/2001-01-18: This should be replaced with something that inserts +# breakpoints using the breakpoint system instead of blatting memory directly +# (as with rs6000). # -# FIXME/cagney/2001-01-18: This should be replaced with something that inserts breakpoints -# using the breakpoint system instead of blatting memory directly (as with rs6000). +# FIXME/cagney/2001-01-18: The logic is backwards. It should be asking if the +# target can single step. If not, then implement single step using breakpoints. # -# FIXME/cagney/2001-01-18: The logic is backwards. It should be asking if the target can -# single step. If not, then implement single step using breakpoints. -F:=:void:software_single_step:enum target_signal sig, int insert_breakpoints_p:sig, insert_breakpoints_p +# A return value of 1 means that the software_single_step breakpoints +# were inserted; 0 means they were not. +F:=:int:software_single_step:struct regcache *regcache:regcache + # Return non-zero if the processor is executing a delay slot and a # further single-step is needed before the instruction finishes. M::int:single_step_through_delay:struct frame_info *frame:frame # FIXME: cagney/2003-08-28: Need to find a better way of selecting the # disassembler. Perhaps objdump can handle it? f:TARGET_PRINT_INSN:int:print_insn:bfd_vma vma, struct disassemble_info *info:vma, info::0: -f:=:CORE_ADDR:skip_trampoline_code:CORE_ADDR pc:pc::generic_skip_trampoline_code::0 +f::CORE_ADDR:skip_trampoline_code:CORE_ADDR pc:pc::generic_skip_trampoline_code::0 # If IN_SOLIB_DYNSYM_RESOLVE_CODE returns true, and SKIP_SOLIB_RESOLVER @@ -637,7 +624,7 @@ f:=:CORE_ADDR:skip_trampoline_code:CORE_ADDR pc:pc::generic_skip_trampoline_code # a step-resume breakpoint to get us past the dynamic linker. m::CORE_ADDR:skip_solib_resolver:CORE_ADDR pc:pc::generic_skip_solib_resolver::0 # Some systems also have trampoline code for returning from shared libs. -f:=:int:in_solib_return_trampoline:CORE_ADDR pc, char *name:pc, name::generic_in_solib_return_trampoline::0 +f::int:in_solib_return_trampoline:CORE_ADDR pc, char *name:pc, name::generic_in_solib_return_trampoline::0 # A target might have problems with watchpoints as soon as the stack # frame of the current function has been destroyed. This mostly happens @@ -658,18 +645,18 @@ m::int:in_function_epilogue_p:CORE_ADDR addr:addr:0:generic_in_function_epilogue # ARGC is the number of elements in the vector. # ARGV is an array of strings, one per argument. m::char *:construct_inferior_arguments:int argc, char **argv:argc, argv::construct_inferior_arguments::0 -f:=:void:elf_make_msymbol_special:asymbol *sym, struct minimal_symbol *msym:sym, msym::default_elf_make_msymbol_special::0 -f:=:void:coff_make_msymbol_special:int val, struct minimal_symbol *msym:val, msym::default_coff_make_msymbol_special::0 -v:=:const char *:name_of_malloc:::"malloc":"malloc"::0:NAME_OF_MALLOC -v:=:int:cannot_step_breakpoint:::0:0::0 -v:=:int:have_nonsteppable_watchpoint:::0:0::0 -F:=:int:address_class_type_flags:int byte_size, int dwarf2_addr_class:byte_size, dwarf2_addr_class +f::void:elf_make_msymbol_special:asymbol *sym, struct minimal_symbol *msym:sym, msym::default_elf_make_msymbol_special::0 +f::void:coff_make_msymbol_special:int val, struct minimal_symbol *msym:val, msym::default_coff_make_msymbol_special::0 +v::const char *:name_of_malloc:::"malloc":"malloc"::0:current_gdbarch->name_of_malloc +v::int:cannot_step_breakpoint:::0:0::0 +v::int:have_nonsteppable_watchpoint:::0:0::0 +F::int:address_class_type_flags:int byte_size, int dwarf2_addr_class:byte_size, dwarf2_addr_class M::const char *:address_class_type_flags_to_name:int type_flags:type_flags M::int:address_class_name_to_type_flags:const char *name, int *type_flags_ptr:name, type_flags_ptr # Is a register in a group m::int:register_reggroup_p:int regnum, struct reggroup *reggroup:regnum, reggroup::default_register_reggroup_p::0 # Fetch the pointer to the ith function argument. -F:=:CORE_ADDR:fetch_pointer_argument:struct frame_info *frame, int argi, struct type *type:frame, argi, type +F::CORE_ADDR:fetch_pointer_argument:struct frame_info *frame, int argi, struct type *type:frame, argi, type # Return the appropriate register set for a core file section with # name SECT_NAME and size SECT_SIZE. @@ -683,6 +670,12 @@ v::int:vtable_function_descriptors:::0:0::0 # Set if the least significant bit of the delta is used instead of the least # significant bit of the pfn for pointers to virtual member functions. v::int:vbit_in_delta:::0:0::0 + +# Advance PC to next instruction in order to skip a permanent breakpoint. +F::void:skip_permanent_breakpoint:struct regcache *regcache:regcache + +# Refresh overlay mapped state for section OSECT. +F::void:overlay_update:struct obj_section *osect:osect EOF } @@ -785,6 +778,7 @@ struct ui_file; struct frame_info; struct value; struct objfile; +struct obj_section; struct minimal_symbol; struct regcache; struct reggroup; @@ -1180,7 +1174,7 @@ cat <