OLD | NEW |
1 /* *INDENT-OFF* */ /* THIS FILE IS GENERATED */ | 1 /* *INDENT-OFF* */ /* THIS FILE IS GENERATED */ |
2 | 2 |
3 /* Dynamic architecture support for GDB, the GNU debugger. | 3 /* Dynamic architecture support for GDB, the GNU debugger. |
4 | 4 |
5 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, | 5 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, |
6 2007, 2008, 2009 Free Software Foundation, Inc. | 6 2007, 2008, 2009 Free Software Foundation, Inc. |
7 | 7 |
8 This file is part of GDB. | 8 This file is part of GDB. |
9 | 9 |
10 This program is free software; you can redistribute it and/or modify | 10 This program is free software; you can redistribute it and/or modify |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 struct disassemble_info; | 48 struct disassemble_info; |
49 struct target_ops; | 49 struct target_ops; |
50 struct obstack; | 50 struct obstack; |
51 struct bp_target_info; | 51 struct bp_target_info; |
52 struct target_desc; | 52 struct target_desc; |
53 struct displaced_step_closure; | 53 struct displaced_step_closure; |
54 struct core_regset_section; | 54 struct core_regset_section; |
55 struct syscall; | 55 struct syscall; |
56 struct agent_expr; | 56 struct agent_expr; |
57 struct axs_value; | 57 struct axs_value; |
| 58 struct stap_parse_info; |
58 | 59 |
59 /* The architecture associated with the connection to the target. | 60 /* The architecture associated with the connection to the target. |
60 | 61 |
61 The architecture vector provides some information that is really | 62 The architecture vector provides some information that is really |
62 a property of the target: The layout of certain packets, for instance; | 63 a property of the target: The layout of certain packets, for instance; |
63 or the solib_ops vector. Etc. To differentiate architecture accesses | 64 or the solib_ops vector. Etc. To differentiate architecture accesses |
64 to per-target properties from per-thread/per-frame/per-objfile properties, | 65 to per-target properties from per-thread/per-frame/per-objfile properties, |
65 accesses to per-target properties should be made through target_gdbarch. | 66 accesses to per-target properties should be made through target_gdbarch. |
66 | 67 |
67 Eventually, when support for multiple targets is implemented in | 68 Eventually, when support for multiple targets is implemented in |
68 GDB, this global should be made target-specific. */ | 69 GDB, this global should be made target-specific. */ |
69 extern struct gdbarch *target_gdbarch; | 70 extern struct gdbarch *target_gdbarch; |
70 | 71 |
| 72 /* Callback type for the 'iterate_over_objfiles_in_search_order' |
| 73 gdbarch method. */ |
| 74 |
| 75 typedef int (iterate_over_objfiles_in_search_order_cb_ftype) |
| 76 (struct objfile *objfile, void *cb_data); |
| 77 |
71 | 78 |
72 /* The following are pre-initialized by GDBARCH. */ | 79 /* The following are pre-initialized by GDBARCH. */ |
73 | 80 |
74 extern const struct bfd_arch_info * gdbarch_bfd_arch_info (struct gdbarch *gdbar
ch); | 81 extern const struct bfd_arch_info * gdbarch_bfd_arch_info (struct gdbarch *gdbar
ch); |
75 /* set_gdbarch_bfd_arch_info() - not applicable - pre-initialized. */ | 82 /* set_gdbarch_bfd_arch_info() - not applicable - pre-initialized. */ |
76 | 83 |
77 extern int gdbarch_byte_order (struct gdbarch *gdbarch); | 84 extern int gdbarch_byte_order (struct gdbarch *gdbarch); |
78 /* set_gdbarch_byte_order() - not applicable - pre-initialized. */ | 85 /* set_gdbarch_byte_order() - not applicable - pre-initialized. */ |
79 | 86 |
80 extern int gdbarch_byte_order_for_code (struct gdbarch *gdbarch); | 87 extern int gdbarch_byte_order_for_code (struct gdbarch *gdbarch); |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
426 typedef void (gdbarch_address_to_pointer_ftype) (struct gdbarch *gdbarch, struct
type *type, gdb_byte *buf, CORE_ADDR addr); | 433 typedef void (gdbarch_address_to_pointer_ftype) (struct gdbarch *gdbarch, struct
type *type, gdb_byte *buf, CORE_ADDR addr); |
427 extern void gdbarch_address_to_pointer (struct gdbarch *gdbarch, struct type *ty
pe, gdb_byte *buf, CORE_ADDR addr); | 434 extern void gdbarch_address_to_pointer (struct gdbarch *gdbarch, struct type *ty
pe, gdb_byte *buf, CORE_ADDR addr); |
428 extern void set_gdbarch_address_to_pointer (struct gdbarch *gdbarch, gdbarch_add
ress_to_pointer_ftype *address_to_pointer); | 435 extern void set_gdbarch_address_to_pointer (struct gdbarch *gdbarch, gdbarch_add
ress_to_pointer_ftype *address_to_pointer); |
429 | 436 |
430 extern int gdbarch_integer_to_address_p (struct gdbarch *gdbarch); | 437 extern int gdbarch_integer_to_address_p (struct gdbarch *gdbarch); |
431 | 438 |
432 typedef CORE_ADDR (gdbarch_integer_to_address_ftype) (struct gdbarch *gdbarch, s
truct type *type, const gdb_byte *buf); | 439 typedef CORE_ADDR (gdbarch_integer_to_address_ftype) (struct gdbarch *gdbarch, s
truct type *type, const gdb_byte *buf); |
433 extern CORE_ADDR gdbarch_integer_to_address (struct gdbarch *gdbarch, struct typ
e *type, const gdb_byte *buf); | 440 extern CORE_ADDR gdbarch_integer_to_address (struct gdbarch *gdbarch, struct typ
e *type, const gdb_byte *buf); |
434 extern void set_gdbarch_integer_to_address (struct gdbarch *gdbarch, gdbarch_int
eger_to_address_ftype *integer_to_address); | 441 extern void set_gdbarch_integer_to_address (struct gdbarch *gdbarch, gdbarch_int
eger_to_address_ftype *integer_to_address); |
435 | 442 |
436 /* Return the return-value convention that will be used by FUNCTYPE | 443 /* Return the return-value convention that will be used by FUNCTION |
437 to return a value of type VALTYPE. FUNCTYPE may be NULL in which | 444 to return a value of type VALTYPE. FUNCTION may be NULL in which |
438 case the return convention is computed based only on VALTYPE. | 445 case the return convention is computed based only on VALTYPE. |
439 | 446 |
440 If READBUF is not NULL, extract the return value and save it in this buffer. | 447 If READBUF is not NULL, extract the return value and save it in this buffer. |
441 | 448 |
442 If WRITEBUF is not NULL, it contains a return value which will be | 449 If WRITEBUF is not NULL, it contains a return value which will be |
443 stored into the appropriate register. This can be used when we want | 450 stored into the appropriate register. This can be used when we want |
444 to force the value returned by a function (see the "return" command | 451 to force the value returned by a function (see the "return" command |
445 for instance). */ | 452 for instance). */ |
446 | 453 |
447 extern int gdbarch_return_value_p (struct gdbarch *gdbarch); | 454 extern int gdbarch_return_value_p (struct gdbarch *gdbarch); |
448 | 455 |
449 typedef enum return_value_convention (gdbarch_return_value_ftype) (struct gdbarc
h *gdbarch, struct type *functype, struct type *valtype, struct regcache *regcac
he, gdb_byte *readbuf, const gdb_byte *writebuf); | 456 typedef enum return_value_convention (gdbarch_return_value_ftype) (struct gdbarc
h *gdbarch, struct value *function, struct type *valtype, struct regcache *regca
che, gdb_byte *readbuf, const gdb_byte *writebuf); |
450 extern enum return_value_convention gdbarch_return_value (struct gdbarch *gdbarc
h, struct type *functype, struct type *valtype, struct regcache *regcache, gdb_b
yte *readbuf, const gdb_byte *writebuf); | 457 extern enum return_value_convention gdbarch_return_value (struct gdbarch *gdbarc
h, struct value *function, struct type *valtype, struct regcache *regcache, gdb_
byte *readbuf, const gdb_byte *writebuf); |
451 extern void set_gdbarch_return_value (struct gdbarch *gdbarch, gdbarch_return_va
lue_ftype *return_value); | 458 extern void set_gdbarch_return_value (struct gdbarch *gdbarch, gdbarch_return_va
lue_ftype *return_value); |
452 | 459 |
| 460 /* Return true if the return value of function is stored in the first hidden |
| 461 parameter. In theory, this feature should be language-dependent, specified |
| 462 by language and its ABI, such as C++. Unfortunately, compiler may |
| 463 implement it to a target-dependent feature. So that we need such hook here |
| 464 to be aware of this in GDB. */ |
| 465 |
| 466 typedef int (gdbarch_return_in_first_hidden_param_p_ftype) (struct gdbarch *gdba
rch, struct type *type); |
| 467 extern int gdbarch_return_in_first_hidden_param_p (struct gdbarch *gdbarch, stru
ct type *type); |
| 468 extern void set_gdbarch_return_in_first_hidden_param_p (struct gdbarch *gdbarch,
gdbarch_return_in_first_hidden_param_p_ftype *return_in_first_hidden_param_p); |
| 469 |
453 typedef CORE_ADDR (gdbarch_skip_prologue_ftype) (struct gdbarch *gdbarch, CORE_A
DDR ip); | 470 typedef CORE_ADDR (gdbarch_skip_prologue_ftype) (struct gdbarch *gdbarch, CORE_A
DDR ip); |
454 extern CORE_ADDR gdbarch_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip); | 471 extern CORE_ADDR gdbarch_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip); |
455 extern void set_gdbarch_skip_prologue (struct gdbarch *gdbarch, gdbarch_skip_pro
logue_ftype *skip_prologue); | 472 extern void set_gdbarch_skip_prologue (struct gdbarch *gdbarch, gdbarch_skip_pro
logue_ftype *skip_prologue); |
456 | 473 |
457 extern int gdbarch_skip_main_prologue_p (struct gdbarch *gdbarch); | 474 extern int gdbarch_skip_main_prologue_p (struct gdbarch *gdbarch); |
458 | 475 |
459 typedef CORE_ADDR (gdbarch_skip_main_prologue_ftype) (struct gdbarch *gdbarch, C
ORE_ADDR ip); | 476 typedef CORE_ADDR (gdbarch_skip_main_prologue_ftype) (struct gdbarch *gdbarch, C
ORE_ADDR ip); |
460 extern CORE_ADDR gdbarch_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR
ip); | 477 extern CORE_ADDR gdbarch_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR
ip); |
461 extern void set_gdbarch_skip_main_prologue (struct gdbarch *gdbarch, gdbarch_ski
p_main_prologue_ftype *skip_main_prologue); | 478 extern void set_gdbarch_skip_main_prologue (struct gdbarch *gdbarch, gdbarch_ski
p_main_prologue_ftype *skip_main_prologue); |
462 | 479 |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
624 /* If in_solib_dynsym_resolve_code() returns true, and SKIP_SOLIB_RESOLVER | 641 /* If in_solib_dynsym_resolve_code() returns true, and SKIP_SOLIB_RESOLVER |
625 evaluates non-zero, this is the address where the debugger will place | 642 evaluates non-zero, this is the address where the debugger will place |
626 a step-resume breakpoint to get us past the dynamic linker. */ | 643 a step-resume breakpoint to get us past the dynamic linker. */ |
627 | 644 |
628 typedef CORE_ADDR (gdbarch_skip_solib_resolver_ftype) (struct gdbarch *gdbarch,
CORE_ADDR pc); | 645 typedef CORE_ADDR (gdbarch_skip_solib_resolver_ftype) (struct gdbarch *gdbarch,
CORE_ADDR pc); |
629 extern CORE_ADDR gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR
pc); | 646 extern CORE_ADDR gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR
pc); |
630 extern void set_gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, gdbarch_sk
ip_solib_resolver_ftype *skip_solib_resolver); | 647 extern void set_gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, gdbarch_sk
ip_solib_resolver_ftype *skip_solib_resolver); |
631 | 648 |
632 /* Some systems also have trampoline code for returning from shared libs. */ | 649 /* Some systems also have trampoline code for returning from shared libs. */ |
633 | 650 |
634 typedef int (gdbarch_in_solib_return_trampoline_ftype) (struct gdbarch *gdbarch,
CORE_ADDR pc, char *name); | 651 typedef int (gdbarch_in_solib_return_trampoline_ftype) (struct gdbarch *gdbarch,
CORE_ADDR pc, const char *name); |
635 extern int gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADD
R pc, char *name); | 652 extern int gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADD
R pc, const char *name); |
636 extern void set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, gdb
arch_in_solib_return_trampoline_ftype *in_solib_return_trampoline); | 653 extern void set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, gdb
arch_in_solib_return_trampoline_ftype *in_solib_return_trampoline); |
637 | 654 |
638 /* A target might have problems with watchpoints as soon as the stack | 655 /* A target might have problems with watchpoints as soon as the stack |
639 frame of the current function has been destroyed. This mostly happens | 656 frame of the current function has been destroyed. This mostly happens |
640 as the first action in a funtion's epilogue. in_function_epilogue_p() | 657 as the first action in a funtion's epilogue. in_function_epilogue_p() |
641 is defined to return a non-zero value if either the given addr is one | 658 is defined to return a non-zero value if either the given addr is one |
642 instruction after the stack destroying instruction up to the trailing | 659 instruction after the stack destroying instruction up to the trailing |
643 return instruction or if we can figure out that the stack frame has | 660 return instruction or if we can figure out that the stack frame has |
644 already been invalidated regardless of the value of addr. Targets | 661 already been invalidated regardless of the value of addr. Targets |
645 which don't suffer from that problem could just let this functionality | 662 which don't suffer from that problem could just let this functionality |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
702 | 719 |
703 typedef const struct regset * (gdbarch_regset_from_core_section_ftype) (struct g
dbarch *gdbarch, const char *sect_name, size_t sect_size); | 720 typedef const struct regset * (gdbarch_regset_from_core_section_ftype) (struct g
dbarch *gdbarch, const char *sect_name, size_t sect_size); |
704 extern const struct regset * gdbarch_regset_from_core_section (struct gdbarch *g
dbarch, const char *sect_name, size_t sect_size); | 721 extern const struct regset * gdbarch_regset_from_core_section (struct gdbarch *g
dbarch, const char *sect_name, size_t sect_size); |
705 extern void set_gdbarch_regset_from_core_section (struct gdbarch *gdbarch, gdbar
ch_regset_from_core_section_ftype *regset_from_core_section); | 722 extern void set_gdbarch_regset_from_core_section (struct gdbarch *gdbarch, gdbar
ch_regset_from_core_section_ftype *regset_from_core_section); |
706 | 723 |
707 /* Supported register notes in a core file. */ | 724 /* Supported register notes in a core file. */ |
708 | 725 |
709 extern struct core_regset_section * gdbarch_core_regset_sections (struct gdbarch
*gdbarch); | 726 extern struct core_regset_section * gdbarch_core_regset_sections (struct gdbarch
*gdbarch); |
710 extern void set_gdbarch_core_regset_sections (struct gdbarch *gdbarch, struct co
re_regset_section * core_regset_sections); | 727 extern void set_gdbarch_core_regset_sections (struct gdbarch *gdbarch, struct co
re_regset_section * core_regset_sections); |
711 | 728 |
| 729 /* Create core file notes */ |
| 730 |
| 731 extern int gdbarch_make_corefile_notes_p (struct gdbarch *gdbarch); |
| 732 |
| 733 typedef char * (gdbarch_make_corefile_notes_ftype) (struct gdbarch *gdbarch, bfd
*obfd, int *note_size); |
| 734 extern char * gdbarch_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, i
nt *note_size); |
| 735 extern void set_gdbarch_make_corefile_notes (struct gdbarch *gdbarch, gdbarch_ma
ke_corefile_notes_ftype *make_corefile_notes); |
| 736 |
| 737 /* Find core file memory regions */ |
| 738 |
| 739 extern int gdbarch_find_memory_regions_p (struct gdbarch *gdbarch); |
| 740 |
| 741 typedef int (gdbarch_find_memory_regions_ftype) (struct gdbarch *gdbarch, find_m
emory_region_ftype func, void *data); |
| 742 extern int gdbarch_find_memory_regions (struct gdbarch *gdbarch, find_memory_reg
ion_ftype func, void *data); |
| 743 extern void set_gdbarch_find_memory_regions (struct gdbarch *gdbarch, gdbarch_fi
nd_memory_regions_ftype *find_memory_regions); |
| 744 |
712 /* Read offset OFFSET of TARGET_OBJECT_LIBRARIES formatted shared libraries list
from | 745 /* Read offset OFFSET of TARGET_OBJECT_LIBRARIES formatted shared libraries list
from |
713 core file into buffer READBUF with length LEN. */ | 746 core file into buffer READBUF with length LEN. */ |
714 | 747 |
715 extern int gdbarch_core_xfer_shared_libraries_p (struct gdbarch *gdbarch); | 748 extern int gdbarch_core_xfer_shared_libraries_p (struct gdbarch *gdbarch); |
716 | 749 |
717 typedef LONGEST (gdbarch_core_xfer_shared_libraries_ftype) (struct gdbarch *gdba
rch, gdb_byte *readbuf, ULONGEST offset, LONGEST len); | 750 typedef LONGEST (gdbarch_core_xfer_shared_libraries_ftype) (struct gdbarch *gdba
rch, gdb_byte *readbuf, ULONGEST offset, LONGEST len); |
718 extern LONGEST gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_
byte *readbuf, ULONGEST offset, LONGEST len); | 751 extern LONGEST gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_
byte *readbuf, ULONGEST offset, LONGEST len); |
719 extern void set_gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb
arch_core_xfer_shared_libraries_ftype *core_xfer_shared_libraries); | 752 extern void set_gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb
arch_core_xfer_shared_libraries_ftype *core_xfer_shared_libraries); |
720 | 753 |
721 /* How the core target converts a PTID from a core file to a string. */ | 754 /* How the core target converts a PTID from a core file to a string. */ |
(...skipping 25 matching lines...) Expand all Loading... |
747 extern void set_gdbarch_vbit_in_delta (struct gdbarch *gdbarch, int vbit_in_delt
a); | 780 extern void set_gdbarch_vbit_in_delta (struct gdbarch *gdbarch, int vbit_in_delt
a); |
748 | 781 |
749 /* Advance PC to next instruction in order to skip a permanent breakpoint. */ | 782 /* Advance PC to next instruction in order to skip a permanent breakpoint. */ |
750 | 783 |
751 extern int gdbarch_skip_permanent_breakpoint_p (struct gdbarch *gdbarch); | 784 extern int gdbarch_skip_permanent_breakpoint_p (struct gdbarch *gdbarch); |
752 | 785 |
753 typedef void (gdbarch_skip_permanent_breakpoint_ftype) (struct regcache *regcach
e); | 786 typedef void (gdbarch_skip_permanent_breakpoint_ftype) (struct regcache *regcach
e); |
754 extern void gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch, struct r
egcache *regcache); | 787 extern void gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch, struct r
egcache *regcache); |
755 extern void set_gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch, gdba
rch_skip_permanent_breakpoint_ftype *skip_permanent_breakpoint); | 788 extern void set_gdbarch_skip_permanent_breakpoint (struct gdbarch *gdbarch, gdba
rch_skip_permanent_breakpoint_ftype *skip_permanent_breakpoint); |
756 | 789 |
757 /* The maximum length of an instruction on this architecture. */ | 790 /* The maximum length of an instruction on this architecture in bytes. */ |
758 | 791 |
759 extern int gdbarch_max_insn_length_p (struct gdbarch *gdbarch); | 792 extern int gdbarch_max_insn_length_p (struct gdbarch *gdbarch); |
760 | 793 |
761 extern ULONGEST gdbarch_max_insn_length (struct gdbarch *gdbarch); | 794 extern ULONGEST gdbarch_max_insn_length (struct gdbarch *gdbarch); |
762 extern void set_gdbarch_max_insn_length (struct gdbarch *gdbarch, ULONGEST max_i
nsn_length); | 795 extern void set_gdbarch_max_insn_length (struct gdbarch *gdbarch, ULONGEST max_i
nsn_length); |
763 | 796 |
764 /* Copy the instruction at FROM to TO, and make any adjustments | 797 /* Copy the instruction at FROM to TO, and make any adjustments |
765 necessary to single-step it at that address. | 798 necessary to single-step it at that address. |
766 | 799 |
767 REGS holds the state the thread's registers will have before | 800 REGS holds the state the thread's registers will have before |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
886 extern int gdbarch_core_read_description_p (struct gdbarch *gdbarch); | 919 extern int gdbarch_core_read_description_p (struct gdbarch *gdbarch); |
887 | 920 |
888 typedef const struct target_desc * (gdbarch_core_read_description_ftype) (struct
gdbarch *gdbarch, struct target_ops *target, bfd *abfd); | 921 typedef const struct target_desc * (gdbarch_core_read_description_ftype) (struct
gdbarch *gdbarch, struct target_ops *target, bfd *abfd); |
889 extern const struct target_desc * gdbarch_core_read_description (struct gdbarch
*gdbarch, struct target_ops *target, bfd *abfd); | 922 extern const struct target_desc * gdbarch_core_read_description (struct gdbarch
*gdbarch, struct target_ops *target, bfd *abfd); |
890 extern void set_gdbarch_core_read_description (struct gdbarch *gdbarch, gdbarch_
core_read_description_ftype *core_read_description); | 923 extern void set_gdbarch_core_read_description (struct gdbarch *gdbarch, gdbarch_
core_read_description_ftype *core_read_description); |
891 | 924 |
892 /* Handle special encoding of static variables in stabs debug info. */ | 925 /* Handle special encoding of static variables in stabs debug info. */ |
893 | 926 |
894 extern int gdbarch_static_transform_name_p (struct gdbarch *gdbarch); | 927 extern int gdbarch_static_transform_name_p (struct gdbarch *gdbarch); |
895 | 928 |
896 typedef char * (gdbarch_static_transform_name_ftype) (char *name); | 929 typedef const char * (gdbarch_static_transform_name_ftype) (const char *name); |
897 extern char * gdbarch_static_transform_name (struct gdbarch *gdbarch, char *name
); | 930 extern const char * gdbarch_static_transform_name (struct gdbarch *gdbarch, cons
t char *name); |
898 extern void set_gdbarch_static_transform_name (struct gdbarch *gdbarch, gdbarch_
static_transform_name_ftype *static_transform_name); | 931 extern void set_gdbarch_static_transform_name (struct gdbarch *gdbarch, gdbarch_
static_transform_name_ftype *static_transform_name); |
899 | 932 |
900 /* Set if the address in N_SO or N_FUN stabs may be zero. */ | 933 /* Set if the address in N_SO or N_FUN stabs may be zero. */ |
901 | 934 |
902 extern int gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch); | 935 extern int gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch); |
903 extern void set_gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch, in
t sofun_address_maybe_missing); | 936 extern void set_gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch, in
t sofun_address_maybe_missing); |
904 | 937 |
905 /* Parse the instruction at ADDR storing in the record execution log | 938 /* Parse the instruction at ADDR storing in the record execution log |
906 the registers REGCACHE and memory ranges that will be affected when | 939 the registers REGCACHE and memory ranges that will be affected when |
907 the instruction executes, along with their current values. | 940 the instruction executes, along with their current values. |
908 Return -1 if something goes wrong, 0 otherwise. */ | 941 Return -1 if something goes wrong, 0 otherwise. */ |
909 | 942 |
910 extern int gdbarch_process_record_p (struct gdbarch *gdbarch); | 943 extern int gdbarch_process_record_p (struct gdbarch *gdbarch); |
911 | 944 |
912 typedef int (gdbarch_process_record_ftype) (struct gdbarch *gdbarch, struct regc
ache *regcache, CORE_ADDR addr); | 945 typedef int (gdbarch_process_record_ftype) (struct gdbarch *gdbarch, struct regc
ache *regcache, CORE_ADDR addr); |
913 extern int gdbarch_process_record (struct gdbarch *gdbarch, struct regcache *reg
cache, CORE_ADDR addr); | 946 extern int gdbarch_process_record (struct gdbarch *gdbarch, struct regcache *reg
cache, CORE_ADDR addr); |
914 extern void set_gdbarch_process_record (struct gdbarch *gdbarch, gdbarch_process
_record_ftype *process_record); | 947 extern void set_gdbarch_process_record (struct gdbarch *gdbarch, gdbarch_process
_record_ftype *process_record); |
915 | 948 |
916 /* Save process state after a signal. | 949 /* Save process state after a signal. |
917 Return -1 if something goes wrong, 0 otherwise. */ | 950 Return -1 if something goes wrong, 0 otherwise. */ |
918 | 951 |
919 extern int gdbarch_process_record_signal_p (struct gdbarch *gdbarch); | 952 extern int gdbarch_process_record_signal_p (struct gdbarch *gdbarch); |
920 | 953 |
921 typedef int (gdbarch_process_record_signal_ftype) (struct gdbarch *gdbarch, stru
ct regcache *regcache, enum target_signal signal); | 954 typedef int (gdbarch_process_record_signal_ftype) (struct gdbarch *gdbarch, stru
ct regcache *regcache, enum gdb_signal signal); |
922 extern int gdbarch_process_record_signal (struct gdbarch *gdbarch, struct regcac
he *regcache, enum target_signal signal); | 955 extern int gdbarch_process_record_signal (struct gdbarch *gdbarch, struct regcac
he *regcache, enum gdb_signal signal); |
923 extern void set_gdbarch_process_record_signal (struct gdbarch *gdbarch, gdbarch_
process_record_signal_ftype *process_record_signal); | 956 extern void set_gdbarch_process_record_signal (struct gdbarch *gdbarch, gdbarch_
process_record_signal_ftype *process_record_signal); |
924 | 957 |
925 /* Signal translation: translate inferior's signal (host's) number into | 958 /* Signal translation: translate inferior's signal (target's) number |
926 GDB's representation. */ | 959 into GDB's representation. The implementation of this method must |
| 960 be host independent. IOW, don't rely on symbols of the NAT_FILE |
| 961 header (the nm-*.h files), the host <signal.h> header, or similar |
| 962 headers. This is mainly used when cross-debugging core files --- |
| 963 "Live" targets hide the translation behind the target interface |
| 964 (target_wait, target_resume, etc.). */ |
927 | 965 |
928 typedef enum target_signal (gdbarch_target_signal_from_host_ftype) (struct gdbar
ch *gdbarch, int signo); | 966 extern int gdbarch_gdb_signal_from_target_p (struct gdbarch *gdbarch); |
929 extern enum target_signal gdbarch_target_signal_from_host (struct gdbarch *gdbar
ch, int signo); | |
930 extern void set_gdbarch_target_signal_from_host (struct gdbarch *gdbarch, gdbarc
h_target_signal_from_host_ftype *target_signal_from_host); | |
931 | 967 |
932 /* Signal translation: translate GDB's signal number into inferior's host | 968 typedef enum gdb_signal (gdbarch_gdb_signal_from_target_ftype) (struct gdbarch *
gdbarch, int signo); |
933 signal number. */ | 969 extern enum gdb_signal gdbarch_gdb_signal_from_target (struct gdbarch *gdbarch,
int signo); |
934 | 970 extern void set_gdbarch_gdb_signal_from_target (struct gdbarch *gdbarch, gdbarch
_gdb_signal_from_target_ftype *gdb_signal_from_target); |
935 typedef int (gdbarch_target_signal_to_host_ftype) (struct gdbarch *gdbarch, enum
target_signal ts); | |
936 extern int gdbarch_target_signal_to_host (struct gdbarch *gdbarch, enum target_s
ignal ts); | |
937 extern void set_gdbarch_target_signal_to_host (struct gdbarch *gdbarch, gdbarch_
target_signal_to_host_ftype *target_signal_to_host); | |
938 | 971 |
939 /* Extra signal info inspection. | 972 /* Extra signal info inspection. |
940 | 973 |
941 Return a type suitable to inspect extra signal information. */ | 974 Return a type suitable to inspect extra signal information. */ |
942 | 975 |
943 extern int gdbarch_get_siginfo_type_p (struct gdbarch *gdbarch); | 976 extern int gdbarch_get_siginfo_type_p (struct gdbarch *gdbarch); |
944 | 977 |
945 typedef struct type * (gdbarch_get_siginfo_type_ftype) (struct gdbarch *gdbarch)
; | 978 typedef struct type * (gdbarch_get_siginfo_type_ftype) (struct gdbarch *gdbarch)
; |
946 extern struct type * gdbarch_get_siginfo_type (struct gdbarch *gdbarch); | 979 extern struct type * gdbarch_get_siginfo_type (struct gdbarch *gdbarch); |
947 extern void set_gdbarch_get_siginfo_type (struct gdbarch *gdbarch, gdbarch_get_s
iginfo_type_ftype *get_siginfo_type); | 980 extern void set_gdbarch_get_siginfo_type (struct gdbarch *gdbarch, gdbarch_get_s
iginfo_type_ftype *get_siginfo_type); |
948 | 981 |
949 /* Record architecture-specific information from the symbol table. */ | 982 /* Record architecture-specific information from the symbol table. */ |
950 | 983 |
951 extern int gdbarch_record_special_symbol_p (struct gdbarch *gdbarch); | 984 extern int gdbarch_record_special_symbol_p (struct gdbarch *gdbarch); |
952 | 985 |
953 typedef void (gdbarch_record_special_symbol_ftype) (struct gdbarch *gdbarch, str
uct objfile *objfile, asymbol *sym); | 986 typedef void (gdbarch_record_special_symbol_ftype) (struct gdbarch *gdbarch, str
uct objfile *objfile, asymbol *sym); |
954 extern void gdbarch_record_special_symbol (struct gdbarch *gdbarch, struct objfi
le *objfile, asymbol *sym); | 987 extern void gdbarch_record_special_symbol (struct gdbarch *gdbarch, struct objfi
le *objfile, asymbol *sym); |
955 extern void set_gdbarch_record_special_symbol (struct gdbarch *gdbarch, gdbarch_
record_special_symbol_ftype *record_special_symbol); | 988 extern void set_gdbarch_record_special_symbol (struct gdbarch *gdbarch, gdbarch_
record_special_symbol_ftype *record_special_symbol); |
956 | 989 |
957 /* Function for the 'catch syscall' feature. | 990 /* Function for the 'catch syscall' feature. |
958 Get architecture-specific system calls information from registers. */ | 991 Get architecture-specific system calls information from registers. */ |
959 | 992 |
960 extern int gdbarch_get_syscall_number_p (struct gdbarch *gdbarch); | 993 extern int gdbarch_get_syscall_number_p (struct gdbarch *gdbarch); |
961 | 994 |
962 typedef LONGEST (gdbarch_get_syscall_number_ftype) (struct gdbarch *gdbarch, pti
d_t ptid); | 995 typedef LONGEST (gdbarch_get_syscall_number_ftype) (struct gdbarch *gdbarch, pti
d_t ptid); |
963 extern LONGEST gdbarch_get_syscall_number (struct gdbarch *gdbarch, ptid_t ptid)
; | 996 extern LONGEST gdbarch_get_syscall_number (struct gdbarch *gdbarch, ptid_t ptid)
; |
964 extern void set_gdbarch_get_syscall_number (struct gdbarch *gdbarch, gdbarch_get
_syscall_number_ftype *get_syscall_number); | 997 extern void set_gdbarch_get_syscall_number (struct gdbarch *gdbarch, gdbarch_get
_syscall_number_ftype *get_syscall_number); |
965 | 998 |
| 999 /* SystemTap related fields and functions. |
| 1000 Prefix used to mark an integer constant on the architecture's assembly |
| 1001 For example, on x86 integer constants are written as: |
| 1002 |
| 1003 $10 ;; integer constant 10 |
| 1004 |
| 1005 in this case, this prefix would be the character `$'. */ |
| 1006 |
| 1007 extern const char * gdbarch_stap_integer_prefix (struct gdbarch *gdbarch); |
| 1008 extern void set_gdbarch_stap_integer_prefix (struct gdbarch *gdbarch, const char
* stap_integer_prefix); |
| 1009 |
| 1010 /* Suffix used to mark an integer constant on the architecture's assembly. */ |
| 1011 |
| 1012 extern const char * gdbarch_stap_integer_suffix (struct gdbarch *gdbarch); |
| 1013 extern void set_gdbarch_stap_integer_suffix (struct gdbarch *gdbarch, const char
* stap_integer_suffix); |
| 1014 |
| 1015 /* Prefix used to mark a register name on the architecture's assembly. |
| 1016 For example, on x86 the register name is written as: |
| 1017 |
| 1018 %eax ;; register eax |
| 1019 |
| 1020 in this case, this prefix would be the character `%'. */ |
| 1021 |
| 1022 extern const char * gdbarch_stap_register_prefix (struct gdbarch *gdbarch); |
| 1023 extern void set_gdbarch_stap_register_prefix (struct gdbarch *gdbarch, const cha
r * stap_register_prefix); |
| 1024 |
| 1025 /* Suffix used to mark a register name on the architecture's assembly */ |
| 1026 |
| 1027 extern const char * gdbarch_stap_register_suffix (struct gdbarch *gdbarch); |
| 1028 extern void set_gdbarch_stap_register_suffix (struct gdbarch *gdbarch, const cha
r * stap_register_suffix); |
| 1029 |
| 1030 /* Prefix used to mark a register indirection on the architecture's assembly. |
| 1031 For example, on x86 the register indirection is written as: |
| 1032 |
| 1033 (%eax) ;; indirecting eax |
| 1034 |
| 1035 in this case, this prefix would be the charater `('. |
| 1036 |
| 1037 Please note that we use the indirection prefix also for register |
| 1038 displacement, e.g., `4(%eax)' on x86. */ |
| 1039 |
| 1040 extern const char * gdbarch_stap_register_indirection_prefix (struct gdbarch *gd
barch); |
| 1041 extern void set_gdbarch_stap_register_indirection_prefix (struct gdbarch *gdbarc
h, const char * stap_register_indirection_prefix); |
| 1042 |
| 1043 /* Suffix used to mark a register indirection on the architecture's assembly. |
| 1044 For example, on x86 the register indirection is written as: |
| 1045 |
| 1046 (%eax) ;; indirecting eax |
| 1047 |
| 1048 in this case, this prefix would be the charater `)'. |
| 1049 |
| 1050 Please note that we use the indirection suffix also for register |
| 1051 displacement, e.g., `4(%eax)' on x86. */ |
| 1052 |
| 1053 extern const char * gdbarch_stap_register_indirection_suffix (struct gdbarch *gd
barch); |
| 1054 extern void set_gdbarch_stap_register_indirection_suffix (struct gdbarch *gdbarc
h, const char * stap_register_indirection_suffix); |
| 1055 |
| 1056 /* Prefix used to name a register using GDB's nomenclature. |
| 1057 |
| 1058 For example, on PPC a register is represented by a number in the assembly |
| 1059 language (e.g., `10' is the 10th general-purpose register). However, |
| 1060 inside GDB this same register has an `r' appended to its name, so the 10th |
| 1061 register would be represented as `r10' internally. */ |
| 1062 |
| 1063 extern const char * gdbarch_stap_gdb_register_prefix (struct gdbarch *gdbarch); |
| 1064 extern void set_gdbarch_stap_gdb_register_prefix (struct gdbarch *gdbarch, const
char * stap_gdb_register_prefix); |
| 1065 |
| 1066 /* Suffix used to name a register using GDB's nomenclature. */ |
| 1067 |
| 1068 extern const char * gdbarch_stap_gdb_register_suffix (struct gdbarch *gdbarch); |
| 1069 extern void set_gdbarch_stap_gdb_register_suffix (struct gdbarch *gdbarch, const
char * stap_gdb_register_suffix); |
| 1070 |
| 1071 /* Check if S is a single operand. |
| 1072 |
| 1073 Single operands can be: |
| 1074 - Literal integers, e.g. `$10' on x86 |
| 1075 - Register access, e.g. `%eax' on x86 |
| 1076 - Register indirection, e.g. `(%eax)' on x86 |
| 1077 - Register displacement, e.g. `4(%eax)' on x86 |
| 1078 |
| 1079 This function should check for these patterns on the string |
| 1080 and return 1 if some were found, or zero otherwise. Please try to match |
| 1081 as much info as you can from the string, i.e., if you have to match |
| 1082 something like `(%', do not match just the `('. */ |
| 1083 |
| 1084 extern int gdbarch_stap_is_single_operand_p (struct gdbarch *gdbarch); |
| 1085 |
| 1086 typedef int (gdbarch_stap_is_single_operand_ftype) (struct gdbarch *gdbarch, con
st char *s); |
| 1087 extern int gdbarch_stap_is_single_operand (struct gdbarch *gdbarch, const char *
s); |
| 1088 extern void set_gdbarch_stap_is_single_operand (struct gdbarch *gdbarch, gdbarch
_stap_is_single_operand_ftype *stap_is_single_operand); |
| 1089 |
| 1090 /* Function used to handle a "special case" in the parser. |
| 1091 |
| 1092 A "special case" is considered to be an unknown token, i.e., a token |
| 1093 that the parser does not know how to parse. A good example of special |
| 1094 case would be ARM's register displacement syntax: |
| 1095 |
| 1096 [R0, #4] ;; displacing R0 by 4 |
| 1097 |
| 1098 Since the parser assumes that a register displacement is of the form: |
| 1099 |
| 1100 <number> <indirection_prefix> <register_name> <indirection_suffix> |
| 1101 |
| 1102 it means that it will not be able to recognize and parse this odd syntax. |
| 1103 Therefore, we should add a special case function that will handle this token. |
| 1104 |
| 1105 This function should generate the proper expression form of the expression |
| 1106 using GDB's internal expression mechanism (e.g., `write_exp_elt_opcode' |
| 1107 and so on). It should also return 1 if the parsing was successful, or zero |
| 1108 if the token was not recognized as a special token (in this case, returning |
| 1109 zero means that the special parser is deferring the parsing to the generic |
| 1110 parser), and should advance the buffer pointer (p->arg). */ |
| 1111 |
| 1112 extern int gdbarch_stap_parse_special_token_p (struct gdbarch *gdbarch); |
| 1113 |
| 1114 typedef int (gdbarch_stap_parse_special_token_ftype) (struct gdbarch *gdbarch, s
truct stap_parse_info *p); |
| 1115 extern int gdbarch_stap_parse_special_token (struct gdbarch *gdbarch, struct sta
p_parse_info *p); |
| 1116 extern void set_gdbarch_stap_parse_special_token (struct gdbarch *gdbarch, gdbar
ch_stap_parse_special_token_ftype *stap_parse_special_token); |
| 1117 |
966 /* True if the list of shared libraries is one and only for all | 1118 /* True if the list of shared libraries is one and only for all |
967 processes, as opposed to a list of shared libraries per inferior. | 1119 processes, as opposed to a list of shared libraries per inferior. |
968 This usually means that all processes, although may or may not share | 1120 This usually means that all processes, although may or may not share |
969 an address space, will see the same set of symbols at the same | 1121 an address space, will see the same set of symbols at the same |
970 addresses. */ | 1122 addresses. */ |
971 | 1123 |
972 extern int gdbarch_has_global_solist (struct gdbarch *gdbarch); | 1124 extern int gdbarch_has_global_solist (struct gdbarch *gdbarch); |
973 extern void set_gdbarch_has_global_solist (struct gdbarch *gdbarch, int has_glob
al_solist); | 1125 extern void set_gdbarch_has_global_solist (struct gdbarch *gdbarch, int has_glob
al_solist); |
974 | 1126 |
975 /* On some targets, even though each inferior has its own private | 1127 /* On some targets, even though each inferior has its own private |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1024 /* Generate bytecodes to collect the return address in a frame. | 1176 /* Generate bytecodes to collect the return address in a frame. |
1025 Since the bytecodes run on the target, possibly with GDB not even | 1177 Since the bytecodes run on the target, possibly with GDB not even |
1026 connected, the full unwinding machinery is not available, and | 1178 connected, the full unwinding machinery is not available, and |
1027 typically this function will issue bytecodes for one or more likely | 1179 typically this function will issue bytecodes for one or more likely |
1028 places that the return address may be found. */ | 1180 places that the return address may be found. */ |
1029 | 1181 |
1030 typedef void (gdbarch_gen_return_address_ftype) (struct gdbarch *gdbarch, struct
agent_expr *ax, struct axs_value *value, CORE_ADDR scope); | 1182 typedef void (gdbarch_gen_return_address_ftype) (struct gdbarch *gdbarch, struct
agent_expr *ax, struct axs_value *value, CORE_ADDR scope); |
1031 extern void gdbarch_gen_return_address (struct gdbarch *gdbarch, struct agent_ex
pr *ax, struct axs_value *value, CORE_ADDR scope); | 1183 extern void gdbarch_gen_return_address (struct gdbarch *gdbarch, struct agent_ex
pr *ax, struct axs_value *value, CORE_ADDR scope); |
1032 extern void set_gdbarch_gen_return_address (struct gdbarch *gdbarch, gdbarch_gen
_return_address_ftype *gen_return_address); | 1184 extern void set_gdbarch_gen_return_address (struct gdbarch *gdbarch, gdbarch_gen
_return_address_ftype *gen_return_address); |
1033 | 1185 |
| 1186 /* Implement the "info proc" command. */ |
| 1187 |
| 1188 extern int gdbarch_info_proc_p (struct gdbarch *gdbarch); |
| 1189 |
| 1190 typedef void (gdbarch_info_proc_ftype) (struct gdbarch *gdbarch, char *args, enu
m info_proc_what what); |
| 1191 extern void gdbarch_info_proc (struct gdbarch *gdbarch, char *args, enum info_pr
oc_what what); |
| 1192 extern void set_gdbarch_info_proc (struct gdbarch *gdbarch, gdbarch_info_proc_ft
ype *info_proc); |
| 1193 |
| 1194 /* Iterate over all objfiles in the order that makes the most sense |
| 1195 for the architecture to make global symbol searches. |
| 1196 |
| 1197 CB is a callback function where OBJFILE is the objfile to be searched, |
| 1198 and CB_DATA a pointer to user-defined data (the same data that is passed |
| 1199 when calling this gdbarch method). The iteration stops if this function |
| 1200 returns nonzero. |
| 1201 |
| 1202 CB_DATA is a pointer to some user-defined data to be passed to |
| 1203 the callback. |
| 1204 |
| 1205 If not NULL, CURRENT_OBJFILE corresponds to the objfile being |
| 1206 inspected when the symbol search was requested. */ |
| 1207 |
| 1208 typedef void (gdbarch_iterate_over_objfiles_in_search_order_ftype) (struct gdbar
ch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype *cb, void *cb_data,
struct objfile *current_objfile); |
| 1209 extern void gdbarch_iterate_over_objfiles_in_search_order (struct gdbarch *gdbar
ch, iterate_over_objfiles_in_search_order_cb_ftype *cb, void *cb_data, struct ob
jfile *current_objfile); |
| 1210 extern void set_gdbarch_iterate_over_objfiles_in_search_order (struct gdbarch *g
dbarch, gdbarch_iterate_over_objfiles_in_search_order_ftype *iterate_over_objfil
es_in_search_order); |
| 1211 |
1034 /* Definition for an unknown syscall, used basically in error-cases. */ | 1212 /* Definition for an unknown syscall, used basically in error-cases. */ |
1035 #define UNKNOWN_SYSCALL (-1) | 1213 #define UNKNOWN_SYSCALL (-1) |
1036 | 1214 |
1037 extern struct gdbarch_tdep *gdbarch_tdep (struct gdbarch *gdbarch); | 1215 extern struct gdbarch_tdep *gdbarch_tdep (struct gdbarch *gdbarch); |
1038 | 1216 |
1039 | 1217 |
1040 /* Mechanism for co-ordinating the selection of a specific | 1218 /* Mechanism for co-ordinating the selection of a specific |
1041 architecture. | 1219 architecture. |
1042 | 1220 |
1043 GDB targets (*-tdep.c) can register an interest in a specific | 1221 GDB targets (*-tdep.c) can register an interest in a specific |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1246 our list. */ | 1424 our list. */ |
1247 | 1425 |
1248 extern void initialize_current_architecture (void); | 1426 extern void initialize_current_architecture (void); |
1249 | 1427 |
1250 /* gdbarch trace variable */ | 1428 /* gdbarch trace variable */ |
1251 extern int gdbarch_debug; | 1429 extern int gdbarch_debug; |
1252 | 1430 |
1253 extern void gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file); | 1431 extern void gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file); |
1254 | 1432 |
1255 #endif | 1433 #endif |
OLD | NEW |