|
GDB (API)
|
#include "defs.h"#include <ctype.h>#include "frame.h"#include "inferior.h"#include "gdbcmd.h"#include "gdbcore.h"#include "gdb_string.h"#include "dis-asm.h"#include "regcache.h"#include "reggroups.h"#include "doublest.h"#include "value.h"#include "arch-utils.h"#include "osabi.h"#include "frame-unwind.h"#include "frame-base.h"#include "trad-frame.h"#include "objfiles.h"#include "dwarf2-frame.h"#include "gdbtypes.h"#include "prologue-value.h"#include "remote.h"#include "target-descriptions.h"#include "user-regs.h"#include "observer.h"#include "arm-tdep.h"#include "gdb/sim-arm.h"#include "elf-bfd.h"#include "coff/internal.h"#include "elf/arm.h"#include "gdb_assert.h"#include "vec.h"#include "record.h"#include "record-full.h"#include "features/arm-with-m.c"#include "features/arm-with-m-fpa-layout.c"#include "features/arm-with-m-vfp-d16.c"#include "features/arm-with-iwmmxt.c"#include "features/arm-with-vfpv2.c"#include "features/arm-with-vfpv3.c"#include "features/arm-with-neon.c"#include "bfd-in2.h"#include "libcoff.h"Go to the source code of this file.
Defines | |
| #define | MSYMBOL_SET_SPECIAL(msym) MSYMBOL_TARGET_FLAG_1 (msym) = 1 |
| #define | MSYMBOL_IS_SPECIAL(msym) MSYMBOL_TARGET_FLAG_1 (msym) |
| #define | DISPLACED_STEPPING_ARCH_VERSION 5 |
| #define | IS_THUMB_ADDR(addr) ((addr) & 1) |
| #define | MAKE_THUMB_ADDR(addr) ((addr) | 1) |
| #define | UNMAKE_THUMB_ADDR(addr) ((addr) & ~1) |
| #define | submask(x) ((1L << ((x) + 1)) - 1) |
| #define | bit(obj, st) (((obj) >> (st)) & 1) |
| #define | bits(obj, st, fn) (((obj) >> (st)) & submask ((fn) - (st))) |
| #define | sbits(obj, st, fn) ((long) (bits(obj,st,fn) | ((long) bit(obj,fn) * ~ submask (fn - st)))) |
| #define | BranchDest(addr, instr) ((CORE_ADDR) (((unsigned long) (addr)) + 8 + (sbits (instr, 0, 23) << 2))) |
| #define | EXTRACT_MOVW_MOVT_IMM_T(insn1, insn2) |
| #define | EXTRACT_MOVW_MOVT_IMM_A(insn) |
| #define | MAX_IT_BLOCK_PREFIX 14 |
| #define | IT_SCAN_THRESHOLD 32 |
| #define | ARM_NOP 0xe1a00000 |
| #define | THUMB_NOP 0x4600 |
| #define | ARM_LE_BREAKPOINT {0xFE,0xDE,0xFF,0xE7} |
| #define | ARM_BE_BREAKPOINT {0xE7,0xFF,0xDE,0xFE} |
| #define | THUMB_LE_BREAKPOINT {0xbe,0xbe} |
| #define | THUMB_BE_BREAKPOINT {0xbe,0xbe} |
| #define | ARM_INSN_SIZE_BYTES 4 |
| #define | THUMB_INSN_SIZE_BYTES 2 |
| #define | THUMB2_INSN_SIZE_BYTES 4 |
| #define | INSN_S_L_BIT_NUM 20 |
| #define | REG_ALLOC(REGS, LENGTH, RECORD_BUF) |
| #define | MEM_ALLOC(MEMS, LENGTH, RECORD_BUF) |
| #define | INSN_RECORDED(ARM_RECORD) (0 != (ARM_RECORD)->reg_rec_count || 0 != (ARM_RECORD)->mem_rec_count) |
Typedefs | |
| typedef struct arm_mapping_symbol | arm_mapping_symbol_s |
| typedef struct arm_exidx_entry | arm_exidx_entry_s |
| typedef struct insn_decode_record_t | insn_decode_record |
| typedef int(* | sti_arm_hdl_fp_t )(insn_decode_record *) |
Enumerations | |
| enum | arm_vfp_cprc_base_type { VFP_CPRC_UNKNOWN, VFP_CPRC_SINGLE, VFP_CPRC_DOUBLE, VFP_CPRC_VEC64, VFP_CPRC_VEC128 } |
| enum | arm_record_strx_t { ARM_RECORD_STRH = 1, ARM_RECORD_STRD } |
| enum | record_type_t { ARM_RECORD = 1, THUMB_RECORD, THUMB2_RECORD } |
Functions | |
| DEF_VEC_O (arm_mapping_symbol_s) | |
| int | arm_psr_thumb_bit (struct gdbarch *gdbarch) |
| int | arm_frame_is_thumb (struct frame_info *frame) |
| int | arm_pc_is_thumb (struct gdbarch *gdbarch, CORE_ADDR memaddr) |
| DEF_VEC_O (arm_exidx_entry_s) | |
| CORE_ADDR | arm_get_next_pc (struct frame_info *frame, CORE_ADDR pc) |
| void | arm_insert_single_step_breakpoint (struct gdbarch *gdbarch, struct address_space *aspace, CORE_ADDR pc) |
| int | arm_deal_with_atomic_sequence (struct frame_info *frame) |
| int | arm_software_single_step (struct frame_info *frame) |
| ULONGEST | displaced_read_reg (struct regcache *regs, struct displaced_step_closure *dsc, int regno) |
| void | displaced_write_reg (struct regcache *regs, struct displaced_step_closure *dsc, int regno, ULONGEST val, enum pc_write_style write_pc) |
| void | arm_process_displaced_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs, struct displaced_step_closure *dsc) |
| void | arm_displaced_init_closure (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct displaced_step_closure *dsc) |
| struct displaced_step_closure * | arm_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs) |
| void | arm_displaced_step_fixup (struct gdbarch *gdbarch, struct displaced_step_closure *dsc, CORE_ADDR from, CORE_ADDR to, struct regcache *regs) |
| CORE_ADDR | arm_skip_stub (struct frame_info *frame, CORE_ADDR pc) |
| void | _initialize_arm_tdep (void) |
| int | arm_process_record (struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR insn_addr) |
Variables | |
| int | arm_apcs_32 = 1 |
| struct frame_unwind | arm_prologue_unwind |
| struct frame_unwind | arm_exidx_unwind |
| struct frame_unwind | arm_stub_unwind |
| struct frame_unwind | arm_m_exception_unwind |
| struct frame_base | arm_normal_base |
| initialize_file_ftype | _initialize_arm_tdep |
| #define ARM_BE_BREAKPOINT {0xE7,0xFF,0xDE,0xFE} |
Definition at line 8774 of file arm-tdep.c.
| #define ARM_INSN_SIZE_BYTES 4 |
Definition at line 10581 of file arm-tdep.c.
| #define ARM_LE_BREAKPOINT {0xFE,0xDE,0xFF,0xE7} |
Definition at line 8773 of file arm-tdep.c.
| #define ARM_NOP 0xe1a00000 |
Definition at line 5459 of file arm-tdep.c.
| #define bit | ( | obj, | |
| st | |||
| ) | (((obj) >> (st)) & 1) |
Definition at line 519 of file arm-tdep.c.
Definition at line 520 of file arm-tdep.c.
| #define BranchDest | ( | addr, | |
| instr | |||
| ) | ((CORE_ADDR) (((unsigned long) (addr)) + 8 + (sbits (instr, 0, 23) << 2))) |
Definition at line 523 of file arm-tdep.c.
| #define DISPLACED_STEPPING_ARCH_VERSION 5 |
Definition at line 269 of file arm-tdep.c.
| #define EXTRACT_MOVW_MOVT_IMM_A | ( | insn | ) |
Definition at line 537 of file arm-tdep.c.
| #define EXTRACT_MOVW_MOVT_IMM_T | ( | insn1, | |
| insn2 | |||
| ) |
| #define INSN_RECORDED | ( | ARM_RECORD | ) | (0 != (ARM_RECORD)->reg_rec_count || 0 != (ARM_RECORD)->mem_rec_count) |
Definition at line 10614 of file arm-tdep.c.
| #define INSN_S_L_BIT_NUM 20 |
Definition at line 10586 of file arm-tdep.c.
| #define IS_THUMB_ADDR | ( | addr | ) | ((addr) & 1) |
Definition at line 273 of file arm-tdep.c.
| #define IT_SCAN_THRESHOLD 32 |
Definition at line 5279 of file arm-tdep.c.
| #define MAKE_THUMB_ADDR | ( | addr | ) | ((addr) | 1) |
Definition at line 274 of file arm-tdep.c.
| #define MAX_IT_BLOCK_PREFIX 14 |
Definition at line 5275 of file arm-tdep.c.
| #define MEM_ALLOC | ( | MEMS, | |
| LENGTH, | |||
| RECORD_BUF | |||
| ) |
do \ { \ unsigned int mem_len = LENGTH; \ if (mem_len) \ { \ MEMS = XNEWVEC (struct arm_mem_r, mem_len); \ memcpy(&MEMS->len, &RECORD_BUF[0], \ sizeof(struct arm_mem_r) * LENGTH); \ } \ } \ while (0)
Definition at line 10600 of file arm-tdep.c.
| #define MSYMBOL_IS_SPECIAL | ( | msym | ) | MSYMBOL_TARGET_FLAG_1 (msym) |
Definition at line 81 of file arm-tdep.c.
| #define MSYMBOL_SET_SPECIAL | ( | msym | ) | MSYMBOL_TARGET_FLAG_1 (msym) = 1 |
Definition at line 78 of file arm-tdep.c.
| #define REG_ALLOC | ( | REGS, | |
| LENGTH, | |||
| RECORD_BUF | |||
| ) |
do \ { \ unsigned int reg_len = LENGTH; \ if (reg_len) \ { \ REGS = XNEWVEC (uint32_t, reg_len); \ memcpy(®S[0], &RECORD_BUF[0], sizeof(uint32_t)*LENGTH); \ } \ } \ while (0)
Definition at line 10588 of file arm-tdep.c.
| #define sbits | ( | obj, | |
| st, | |||
| fn | |||
| ) | ((long) (bits(obj,st,fn) | ((long) bit(obj,fn) * ~ submask (fn - st)))) |
Definition at line 521 of file arm-tdep.c.
| #define submask | ( | x | ) | ((1L << ((x) + 1)) - 1) |
Definition at line 518 of file arm-tdep.c.
| #define THUMB2_INSN_SIZE_BYTES 4 |
Definition at line 10583 of file arm-tdep.c.
| #define THUMB_BE_BREAKPOINT {0xbe,0xbe} |
Definition at line 8776 of file arm-tdep.c.
| #define THUMB_INSN_SIZE_BYTES 2 |
Definition at line 10582 of file arm-tdep.c.
| #define THUMB_LE_BREAKPOINT {0xbe,0xbe} |
Definition at line 8775 of file arm-tdep.c.
| #define THUMB_NOP 0x4600 |
Definition at line 5460 of file arm-tdep.c.
| #define UNMAKE_THUMB_ADDR | ( | addr | ) | ((addr) & ~1) |
Definition at line 275 of file arm-tdep.c.
| typedef struct arm_exidx_entry arm_exidx_entry_s |
Definition at line 2144 of file arm-tdep.c.
| typedef struct arm_mapping_symbol arm_mapping_symbol_s |
Definition at line 92 of file arm-tdep.c.
| typedef struct insn_decode_record_t insn_decode_record |
| typedef int(* sti_arm_hdl_fp_t)(insn_decode_record *) |
Definition at line 12436 of file arm-tdep.c.
| enum arm_record_strx_t |
Definition at line 10669 of file arm-tdep.c.
Definition at line 3436 of file arm-tdep.c.
| enum record_type_t |
Definition at line 10675 of file arm-tdep.c.
| void _initialize_arm_tdep | ( | void | ) |
Definition at line 10433 of file arm-tdep.c.
| int arm_deal_with_atomic_sequence | ( | struct frame_info * | frame | ) |
Definition at line 5220 of file arm-tdep.c.
| void arm_displaced_init_closure | ( | struct gdbarch * | gdbarch, |
| CORE_ADDR | from, | ||
| CORE_ADDR | to, | ||
| struct displaced_step_closure * | dsc | ||
| ) |
Definition at line 8612 of file arm-tdep.c.
| struct displaced_step_closure* arm_displaced_step_copy_insn | ( | struct gdbarch * | gdbarch, |
| CORE_ADDR | from, | ||
| CORE_ADDR | to, | ||
| struct regcache * | regs | ||
| ) | [read] |
Definition at line 8669 of file arm-tdep.c.
| void arm_displaced_step_fixup | ( | struct gdbarch * | gdbarch, |
| struct displaced_step_closure * | dsc, | ||
| CORE_ADDR | from, | ||
| CORE_ADDR | to, | ||
| struct regcache * | regs | ||
| ) |
Definition at line 8685 of file arm-tdep.c.
| int arm_frame_is_thumb | ( | struct frame_info * | frame | ) |
Definition at line 295 of file arm-tdep.c.
| CORE_ADDR arm_get_next_pc | ( | struct frame_info * | frame, |
| CORE_ADDR | pc | ||
| ) |
Definition at line 4968 of file arm-tdep.c.
| void arm_insert_single_step_breakpoint | ( | struct gdbarch * | gdbarch, |
| struct address_space * | aspace, | ||
| CORE_ADDR | pc | ||
| ) |
Definition at line 4993 of file arm-tdep.c.
| int arm_pc_is_thumb | ( | struct gdbarch * | gdbarch, |
| CORE_ADDR | memaddr | ||
| ) |
Definition at line 382 of file arm-tdep.c.
| void arm_process_displaced_insn | ( | struct gdbarch * | gdbarch, |
| CORE_ADDR | from, | ||
| CORE_ADDR | to, | ||
| struct regcache * | regs, | ||
| struct displaced_step_closure * | dsc | ||
| ) |
Definition at line 8552 of file arm-tdep.c.
| int arm_process_record | ( | struct gdbarch * | gdbarch, |
| struct regcache * | regcache, | ||
| CORE_ADDR | insn_addr | ||
| ) |
Definition at line 12537 of file arm-tdep.c.
| int arm_psr_thumb_bit | ( | struct gdbarch * | gdbarch | ) |
Definition at line 284 of file arm-tdep.c.
| CORE_ADDR arm_skip_stub | ( | struct frame_info * | frame, |
| CORE_ADDR | pc | ||
| ) |
Definition at line 9228 of file arm-tdep.c.
| int arm_software_single_step | ( | struct frame_info * | frame | ) |
Definition at line 5234 of file arm-tdep.c.
| ULONGEST displaced_read_reg | ( | struct regcache * | regs, |
| struct displaced_step_closure * | dsc, | ||
| int | regno | ||
| ) |
Definition at line 5467 of file arm-tdep.c.
| void displaced_write_reg | ( | struct regcache * | regs, |
| struct displaced_step_closure * | dsc, | ||
| int | regno, | ||
| ULONGEST | val, | ||
| enum pc_write_style | write_pc | ||
| ) |
Definition at line 5587 of file arm-tdep.c.
| int arm_apcs_32 = 1 |
Definition at line 279 of file arm-tdep.c.
| struct frame_unwind arm_exidx_unwind |
{
NORMAL_FRAME,
default_frame_unwind_stop_reason,
arm_prologue_this_id,
arm_prologue_prev_register,
NULL,
arm_exidx_unwind_sniffer
}
Definition at line 2863 of file arm-tdep.c.
{
SIGTRAMP_FRAME,
default_frame_unwind_stop_reason,
arm_m_exception_this_id,
arm_m_exception_prev_register,
NULL,
arm_m_exception_unwind_sniffer
}
Definition at line 3039 of file arm-tdep.c.
| struct frame_base arm_normal_base |
{
&arm_prologue_unwind,
arm_normal_frame_base,
arm_normal_frame_base,
arm_normal_frame_base
}
Definition at line 3061 of file arm-tdep.c.
| struct frame_unwind arm_prologue_unwind |
{
NORMAL_FRAME,
default_frame_unwind_stop_reason,
arm_prologue_this_id,
arm_prologue_prev_register,
NULL,
default_frame_sniffer
}
Definition at line 2123 of file arm-tdep.c.
| struct frame_unwind arm_stub_unwind |
{
NORMAL_FRAME,
default_frame_unwind_stop_reason,
arm_stub_this_id,
arm_prologue_prev_register,
NULL,
arm_stub_unwind_sniffer
}
Definition at line 2919 of file arm-tdep.c.
Definition at line 161 of file arm-tdep.c.
Definition at line 162 of file arm-tdep.c.
1.7.6.1