OLD | NEW |
1 #!/bin/sh -u | 1 #!/bin/sh -u |
2 | 2 |
3 # Architecture commands for GDB, the GNU debugger. | 3 # Architecture commands for GDB, the GNU debugger. |
4 # | 4 # |
5 # Copyright (C) 1998-2012 Free Software Foundation, Inc. | 5 # Copyright (C) 1998-2012 Free Software Foundation, Inc. |
6 # | 6 # |
7 # This file is part of GDB. | 7 # This file is part of GDB. |
8 # | 8 # |
9 # This program is free software; you can redistribute it and/or modify | 9 # This program is free software; you can redistribute it and/or modify |
10 # it under the terms of the GNU General Public License as published by | 10 # it under the terms of the GNU General Public License as published by |
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
496 # Construct a value representing the contents of register REGNUM in | 496 # Construct a value representing the contents of register REGNUM in |
497 # frame FRAME, interpreted as type TYPE. The routine needs to | 497 # frame FRAME, interpreted as type TYPE. The routine needs to |
498 # allocate and return a struct value with all value attributes | 498 # allocate and return a struct value with all value attributes |
499 # (but not the value contents) filled in. | 499 # (but not the value contents) filled in. |
500 f:struct value *:value_from_register:struct type *type, int regnum, struct frame
_info *frame:type, regnum, frame::default_value_from_register::0 | 500 f:struct value *:value_from_register:struct type *type, int regnum, struct frame
_info *frame:type, regnum, frame::default_value_from_register::0 |
501 # | 501 # |
502 m:CORE_ADDR:pointer_to_address:struct type *type, const gdb_byte *buf:type, buf:
:unsigned_pointer_to_address::0 | 502 m:CORE_ADDR:pointer_to_address:struct type *type, const gdb_byte *buf:type, buf:
:unsigned_pointer_to_address::0 |
503 m:void:address_to_pointer:struct type *type, gdb_byte *buf, CORE_ADDR addr:type,
buf, addr::unsigned_address_to_pointer::0 | 503 m:void:address_to_pointer:struct type *type, gdb_byte *buf, CORE_ADDR addr:type,
buf, addr::unsigned_address_to_pointer::0 |
504 M:CORE_ADDR:integer_to_address:struct type *type, const gdb_byte *buf:type, buf | 504 M:CORE_ADDR:integer_to_address:struct type *type, const gdb_byte *buf:type, buf |
505 | 505 |
506 # Return the return-value convention that will be used by FUNCTYPE | 506 # Return the return-value convention that will be used by FUNCTION |
507 # to return a value of type VALTYPE. FUNCTYPE may be NULL in which | 507 # to return a value of type VALTYPE. FUNCTION may be NULL in which |
508 # case the return convention is computed based only on VALTYPE. | 508 # case the return convention is computed based only on VALTYPE. |
509 # | 509 # |
510 # If READBUF is not NULL, extract the return value and save it in this buffer. | 510 # If READBUF is not NULL, extract the return value and save it in this buffer. |
511 # | 511 # |
512 # If WRITEBUF is not NULL, it contains a return value which will be | 512 # If WRITEBUF is not NULL, it contains a return value which will be |
513 # stored into the appropriate register. This can be used when we want | 513 # stored into the appropriate register. This can be used when we want |
514 # to force the value returned by a function (see the "return" command | 514 # to force the value returned by a function (see the "return" command |
515 # for instance). | 515 # for instance). |
516 M:enum return_value_convention:return_value:struct type *functype, struct type *
valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf:
functype, valtype, regcache, readbuf, writebuf | 516 M:enum return_value_convention:return_value:struct value *function, struct type
*valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf
:function, valtype, regcache, readbuf, writebuf |
| 517 |
| 518 # Return true if the return value of function is stored in the first hidden |
| 519 # parameter. In theory, this feature should be language-dependent, specified |
| 520 # by language and its ABI, such as C++. Unfortunately, compiler may |
| 521 # implement it to a target-dependent feature. So that we need such hook here |
| 522 # to be aware of this in GDB. |
| 523 m:int:return_in_first_hidden_param_p:struct type *type:type::default_return_in_f
irst_hidden_param_p::0 |
517 | 524 |
518 m:CORE_ADDR:skip_prologue:CORE_ADDR ip:ip:0:0 | 525 m:CORE_ADDR:skip_prologue:CORE_ADDR ip:ip:0:0 |
519 M:CORE_ADDR:skip_main_prologue:CORE_ADDR ip:ip | 526 M:CORE_ADDR:skip_main_prologue:CORE_ADDR ip:ip |
520 f:int:inner_than:CORE_ADDR lhs, CORE_ADDR rhs:lhs, rhs:0:0 | 527 f:int:inner_than:CORE_ADDR lhs, CORE_ADDR rhs:lhs, rhs:0:0 |
521 m:const gdb_byte *:breakpoint_from_pc:CORE_ADDR *pcptr, int *lenptr:pcptr, lenpt
r::0: | 528 m:const gdb_byte *:breakpoint_from_pc:CORE_ADDR *pcptr, int *lenptr:pcptr, lenpt
r::0: |
522 # Return the adjusted address and kind to use for Z0/Z1 packets. | 529 # Return the adjusted address and kind to use for Z0/Z1 packets. |
523 # KIND is usually the memory length of the breakpoint, but may have a | 530 # KIND is usually the memory length of the breakpoint, but may have a |
524 # different target-specific meaning. | 531 # different target-specific meaning. |
525 m:void:remote_breakpoint_from_pc:CORE_ADDR *pcptr, int *kindptr:pcptr, kindptr:0
:default_remote_breakpoint_from_pc::0 | 532 m:void:remote_breakpoint_from_pc:CORE_ADDR *pcptr, int *kindptr:pcptr, kindptr:0
:default_remote_breakpoint_from_pc::0 |
526 M:CORE_ADDR:adjust_breakpoint_address:CORE_ADDR bpaddr:bpaddr | 533 M:CORE_ADDR:adjust_breakpoint_address:CORE_ADDR bpaddr:bpaddr |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
593 # disassembler. Perhaps objdump can handle it? | 600 # disassembler. Perhaps objdump can handle it? |
594 f:int:print_insn:bfd_vma vma, struct disassemble_info *info:vma, info::0: | 601 f:int:print_insn:bfd_vma vma, struct disassemble_info *info:vma, info::0: |
595 f:CORE_ADDR:skip_trampoline_code:struct frame_info *frame, CORE_ADDR pc:frame, p
c::generic_skip_trampoline_code::0 | 602 f:CORE_ADDR:skip_trampoline_code:struct frame_info *frame, CORE_ADDR pc:frame, p
c::generic_skip_trampoline_code::0 |
596 | 603 |
597 | 604 |
598 # If in_solib_dynsym_resolve_code() returns true, and SKIP_SOLIB_RESOLVER | 605 # If in_solib_dynsym_resolve_code() returns true, and SKIP_SOLIB_RESOLVER |
599 # evaluates non-zero, this is the address where the debugger will place | 606 # evaluates non-zero, this is the address where the debugger will place |
600 # a step-resume breakpoint to get us past the dynamic linker. | 607 # a step-resume breakpoint to get us past the dynamic linker. |
601 m:CORE_ADDR:skip_solib_resolver:CORE_ADDR pc:pc::generic_skip_solib_resolver::0 | 608 m:CORE_ADDR:skip_solib_resolver:CORE_ADDR pc:pc::generic_skip_solib_resolver::0 |
602 # Some systems also have trampoline code for returning from shared libs. | 609 # Some systems also have trampoline code for returning from shared libs. |
603 m:int:in_solib_return_trampoline:CORE_ADDR pc, char *name:pc, name::generic_in_s
olib_return_trampoline::0 | 610 m:int:in_solib_return_trampoline:CORE_ADDR pc, const char *name:pc, name::generi
c_in_solib_return_trampoline::0 |
604 | 611 |
605 # A target might have problems with watchpoints as soon as the stack | 612 # A target might have problems with watchpoints as soon as the stack |
606 # frame of the current function has been destroyed. This mostly happens | 613 # frame of the current function has been destroyed. This mostly happens |
607 # as the first action in a funtion's epilogue. in_function_epilogue_p() | 614 # as the first action in a funtion's epilogue. in_function_epilogue_p() |
608 # is defined to return a non-zero value if either the given addr is one | 615 # is defined to return a non-zero value if either the given addr is one |
609 # instruction after the stack destroying instruction up to the trailing | 616 # instruction after the stack destroying instruction up to the trailing |
610 # return instruction or if we can figure out that the stack frame has | 617 # return instruction or if we can figure out that the stack frame has |
611 # already been invalidated regardless of the value of addr. Targets | 618 # already been invalidated regardless of the value of addr. Targets |
612 # which don't suffer from that problem could just let this functionality | 619 # which don't suffer from that problem could just let this functionality |
613 # untouched. | 620 # untouched. |
(...skipping 10 matching lines...) Expand all Loading... |
624 # Fetch the pointer to the ith function argument. | 631 # Fetch the pointer to the ith function argument. |
625 F:CORE_ADDR:fetch_pointer_argument:struct frame_info *frame, int argi, struct ty
pe *type:frame, argi, type | 632 F:CORE_ADDR:fetch_pointer_argument:struct frame_info *frame, int argi, struct ty
pe *type:frame, argi, type |
626 | 633 |
627 # Return the appropriate register set for a core file section with | 634 # Return the appropriate register set for a core file section with |
628 # name SECT_NAME and size SECT_SIZE. | 635 # name SECT_NAME and size SECT_SIZE. |
629 M:const struct regset *:regset_from_core_section:const char *sect_name, size_t s
ect_size:sect_name, sect_size | 636 M:const struct regset *:regset_from_core_section:const char *sect_name, size_t s
ect_size:sect_name, sect_size |
630 | 637 |
631 # Supported register notes in a core file. | 638 # Supported register notes in a core file. |
632 v:struct core_regset_section *:core_regset_sections:const char *name, int len:::
:::host_address_to_string (gdbarch->core_regset_sections) | 639 v:struct core_regset_section *:core_regset_sections:const char *name, int len:::
:::host_address_to_string (gdbarch->core_regset_sections) |
633 | 640 |
| 641 # Create core file notes |
| 642 M:char *:make_corefile_notes:bfd *obfd, int *note_size:obfd, note_size |
| 643 |
| 644 # Find core file memory regions |
| 645 M:int:find_memory_regions:find_memory_region_ftype func, void *data:func, data |
| 646 |
634 # Read offset OFFSET of TARGET_OBJECT_LIBRARIES formatted shared libraries list
from | 647 # Read offset OFFSET of TARGET_OBJECT_LIBRARIES formatted shared libraries list
from |
635 # core file into buffer READBUF with length LEN. | 648 # core file into buffer READBUF with length LEN. |
636 M:LONGEST:core_xfer_shared_libraries:gdb_byte *readbuf, ULONGEST offset, LONGEST
len:readbuf, offset, len | 649 M:LONGEST:core_xfer_shared_libraries:gdb_byte *readbuf, ULONGEST offset, LONGEST
len:readbuf, offset, len |
637 | 650 |
638 # How the core target converts a PTID from a core file to a string. | 651 # How the core target converts a PTID from a core file to a string. |
639 M:char *:core_pid_to_str:ptid_t ptid:ptid | 652 M:char *:core_pid_to_str:ptid_t ptid:ptid |
640 | 653 |
641 # BFD target to use when generating a core file. | 654 # BFD target to use when generating a core file. |
642 V:const char *:gcore_bfd_target:::0:0:::pstring (gdbarch->gcore_bfd_target) | 655 V:const char *:gcore_bfd_target:::0:0:::pstring (gdbarch->gcore_bfd_target) |
643 | 656 |
644 # If the elements of C++ vtables are in-place function descriptors rather | 657 # If the elements of C++ vtables are in-place function descriptors rather |
645 # than normal function pointers (which may point to code or a descriptor), | 658 # than normal function pointers (which may point to code or a descriptor), |
646 # set this to one. | 659 # set this to one. |
647 v:int:vtable_function_descriptors:::0:0::0 | 660 v:int:vtable_function_descriptors:::0:0::0 |
648 | 661 |
649 # Set if the least significant bit of the delta is used instead of the least | 662 # Set if the least significant bit of the delta is used instead of the least |
650 # significant bit of the pfn for pointers to virtual member functions. | 663 # significant bit of the pfn for pointers to virtual member functions. |
651 v:int:vbit_in_delta:::0:0::0 | 664 v:int:vbit_in_delta:::0:0::0 |
652 | 665 |
653 # Advance PC to next instruction in order to skip a permanent breakpoint. | 666 # Advance PC to next instruction in order to skip a permanent breakpoint. |
654 F:void:skip_permanent_breakpoint:struct regcache *regcache:regcache | 667 F:void:skip_permanent_breakpoint:struct regcache *regcache:regcache |
655 | 668 |
656 # The maximum length of an instruction on this architecture. | 669 # The maximum length of an instruction on this architecture in bytes. |
657 V:ULONGEST:max_insn_length:::0:0 | 670 V:ULONGEST:max_insn_length:::0:0 |
658 | 671 |
659 # Copy the instruction at FROM to TO, and make any adjustments | 672 # Copy the instruction at FROM to TO, and make any adjustments |
660 # necessary to single-step it at that address. | 673 # necessary to single-step it at that address. |
661 # | 674 # |
662 # REGS holds the state the thread's registers will have before | 675 # REGS holds the state the thread's registers will have before |
663 # executing the copied instruction; the PC in REGS will refer to FROM, | 676 # executing the copied instruction; the PC in REGS will refer to FROM, |
664 # not the copy at TO. The caller should update it to point at TO later. | 677 # not the copy at TO. The caller should update it to point at TO later. |
665 # | 678 # |
666 # Return a pointer to data of the architecture's choice to be passed | 679 # Return a pointer to data of the architecture's choice to be passed |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
745 # relative branches, and other PC-relative instructions need the | 758 # relative branches, and other PC-relative instructions need the |
746 # offset adjusted; etc. | 759 # offset adjusted; etc. |
747 M:void:relocate_instruction:CORE_ADDR *to, CORE_ADDR from:to, from::NULL | 760 M:void:relocate_instruction:CORE_ADDR *to, CORE_ADDR from:to, from::NULL |
748 | 761 |
749 # Refresh overlay mapped state for section OSECT. | 762 # Refresh overlay mapped state for section OSECT. |
750 F:void:overlay_update:struct obj_section *osect:osect | 763 F:void:overlay_update:struct obj_section *osect:osect |
751 | 764 |
752 M:const struct target_desc *:core_read_description:struct target_ops *target, bf
d *abfd:target, abfd | 765 M:const struct target_desc *:core_read_description:struct target_ops *target, bf
d *abfd:target, abfd |
753 | 766 |
754 # Handle special encoding of static variables in stabs debug info. | 767 # Handle special encoding of static variables in stabs debug info. |
755 F:char *:static_transform_name:char *name:name | 768 F:const char *:static_transform_name:const char *name:name |
756 # Set if the address in N_SO or N_FUN stabs may be zero. | 769 # Set if the address in N_SO or N_FUN stabs may be zero. |
757 v:int:sofun_address_maybe_missing:::0:0::0 | 770 v:int:sofun_address_maybe_missing:::0:0::0 |
758 | 771 |
759 # Parse the instruction at ADDR storing in the record execution log | 772 # Parse the instruction at ADDR storing in the record execution log |
760 # the registers REGCACHE and memory ranges that will be affected when | 773 # the registers REGCACHE and memory ranges that will be affected when |
761 # the instruction executes, along with their current values. | 774 # the instruction executes, along with their current values. |
762 # Return -1 if something goes wrong, 0 otherwise. | 775 # Return -1 if something goes wrong, 0 otherwise. |
763 M:int:process_record:struct regcache *regcache, CORE_ADDR addr:regcache, addr | 776 M:int:process_record:struct regcache *regcache, CORE_ADDR addr:regcache, addr |
764 | 777 |
765 # Save process state after a signal. | 778 # Save process state after a signal. |
766 # Return -1 if something goes wrong, 0 otherwise. | 779 # Return -1 if something goes wrong, 0 otherwise. |
767 M:int:process_record_signal:struct regcache *regcache, enum target_signal signal
:regcache, signal | 780 M:int:process_record_signal:struct regcache *regcache, enum gdb_signal signal:re
gcache, signal |
768 | 781 |
769 # Signal translation: translate inferior's signal (host's) number into | 782 # Signal translation: translate inferior's signal (target's) number |
770 # GDB's representation. | 783 # into GDB's representation. The implementation of this method must |
771 m:enum target_signal:target_signal_from_host:int signo:signo::default_target_sig
nal_from_host::0 | 784 # be host independent. IOW, don't rely on symbols of the NAT_FILE |
772 # Signal translation: translate GDB's signal number into inferior's host | 785 # header (the nm-*.h files), the host <signal.h> header, or similar |
773 # signal number. | 786 # headers. This is mainly used when cross-debugging core files --- |
774 m:int:target_signal_to_host:enum target_signal ts:ts::default_target_signal_to_h
ost::0 | 787 # "Live" targets hide the translation behind the target interface |
| 788 # (target_wait, target_resume, etc.). |
| 789 M:enum gdb_signal:gdb_signal_from_target:int signo:signo |
775 | 790 |
776 # Extra signal info inspection. | 791 # Extra signal info inspection. |
777 # | 792 # |
778 # Return a type suitable to inspect extra signal information. | 793 # Return a type suitable to inspect extra signal information. |
779 M:struct type *:get_siginfo_type:void: | 794 M:struct type *:get_siginfo_type:void: |
780 | 795 |
781 # Record architecture-specific information from the symbol table. | 796 # Record architecture-specific information from the symbol table. |
782 M:void:record_special_symbol:struct objfile *objfile, asymbol *sym:objfile, sym | 797 M:void:record_special_symbol:struct objfile *objfile, asymbol *sym:objfile, sym |
783 | 798 |
784 # Function for the 'catch syscall' feature. | 799 # Function for the 'catch syscall' feature. |
785 | 800 |
786 # Get architecture-specific system calls information from registers. | 801 # Get architecture-specific system calls information from registers. |
787 M:LONGEST:get_syscall_number:ptid_t ptid:ptid | 802 M:LONGEST:get_syscall_number:ptid_t ptid:ptid |
788 | 803 |
| 804 # SystemTap related fields and functions. |
| 805 |
| 806 # Prefix used to mark an integer constant on the architecture's assembly |
| 807 # For example, on x86 integer constants are written as: |
| 808 # |
| 809 # \$10 ;; integer constant 10 |
| 810 # |
| 811 # in this case, this prefix would be the character \`\$\'. |
| 812 v:const char *:stap_integer_prefix:::0:0::0:gdbarch->stap_integer_prefix |
| 813 |
| 814 # Suffix used to mark an integer constant on the architecture's assembly. |
| 815 v:const char *:stap_integer_suffix:::0:0::0:gdbarch->stap_integer_suffix |
| 816 |
| 817 # Prefix used to mark a register name on the architecture's assembly. |
| 818 # For example, on x86 the register name is written as: |
| 819 # |
| 820 # \%eax ;; register eax |
| 821 # |
| 822 # in this case, this prefix would be the character \`\%\'. |
| 823 v:const char *:stap_register_prefix:::0:0::0:gdbarch->stap_register_prefix |
| 824 |
| 825 # Suffix used to mark a register name on the architecture's assembly |
| 826 v:const char *:stap_register_suffix:::0:0::0:gdbarch->stap_register_suffix |
| 827 |
| 828 # Prefix used to mark a register indirection on the architecture's assembly. |
| 829 # For example, on x86 the register indirection is written as: |
| 830 # |
| 831 # \(\%eax\) ;; indirecting eax |
| 832 # |
| 833 # in this case, this prefix would be the charater \`\(\'. |
| 834 # |
| 835 # Please note that we use the indirection prefix also for register |
| 836 # displacement, e.g., \`4\(\%eax\)\' on x86. |
| 837 v:const char *:stap_register_indirection_prefix:::0:0::0:gdbarch->stap_register_
indirection_prefix |
| 838 |
| 839 # Suffix used to mark a register indirection on the architecture's assembly. |
| 840 # For example, on x86 the register indirection is written as: |
| 841 # |
| 842 # \(\%eax\) ;; indirecting eax |
| 843 # |
| 844 # in this case, this prefix would be the charater \`\)\'. |
| 845 # |
| 846 # Please note that we use the indirection suffix also for register |
| 847 # displacement, e.g., \`4\(\%eax\)\' on x86. |
| 848 v:const char *:stap_register_indirection_suffix:::0:0::0:gdbarch->stap_register_
indirection_suffix |
| 849 |
| 850 # Prefix used to name a register using GDB's nomenclature. |
| 851 # |
| 852 # For example, on PPC a register is represented by a number in the assembly |
| 853 # language (e.g., \`10\' is the 10th general-purpose register). However, |
| 854 # inside GDB this same register has an \`r\' appended to its name, so the 10th |
| 855 # register would be represented as \`r10\' internally. |
| 856 v:const char *:stap_gdb_register_prefix:::0:0::0:gdbarch->stap_gdb_register_pref
ix |
| 857 |
| 858 # Suffix used to name a register using GDB's nomenclature. |
| 859 v:const char *:stap_gdb_register_suffix:::0:0::0:gdbarch->stap_gdb_register_suff
ix |
| 860 |
| 861 # Check if S is a single operand. |
| 862 # |
| 863 # Single operands can be: |
| 864 # \- Literal integers, e.g. \`\$10\' on x86 |
| 865 # \- Register access, e.g. \`\%eax\' on x86 |
| 866 # \- Register indirection, e.g. \`\(\%eax\)\' on x86 |
| 867 # \- Register displacement, e.g. \`4\(\%eax\)\' on x86 |
| 868 # |
| 869 # This function should check for these patterns on the string |
| 870 # and return 1 if some were found, or zero otherwise. Please try to match |
| 871 # as much info as you can from the string, i.e., if you have to match |
| 872 # something like \`\(\%\', do not match just the \`\(\'. |
| 873 M:int:stap_is_single_operand:const char *s:s |
| 874 |
| 875 # Function used to handle a "special case" in the parser. |
| 876 # |
| 877 # A "special case" is considered to be an unknown token, i.e., a token |
| 878 # that the parser does not know how to parse. A good example of special |
| 879 # case would be ARM's register displacement syntax: |
| 880 # |
| 881 # [R0, #4] ;; displacing R0 by 4 |
| 882 # |
| 883 # Since the parser assumes that a register displacement is of the form: |
| 884 # |
| 885 # <number> <indirection_prefix> <register_name> <indirection_suffix> |
| 886 # |
| 887 # it means that it will not be able to recognize and parse this odd syntax. |
| 888 # Therefore, we should add a special case function that will handle this token. |
| 889 # |
| 890 # This function should generate the proper expression form of the expression |
| 891 # using GDB\'s internal expression mechanism (e.g., \`write_exp_elt_opcode\' |
| 892 # and so on). It should also return 1 if the parsing was successful, or zero |
| 893 # if the token was not recognized as a special token (in this case, returning |
| 894 # zero means that the special parser is deferring the parsing to the generic |
| 895 # parser), and should advance the buffer pointer (p->arg). |
| 896 M:int:stap_parse_special_token:struct stap_parse_info *p:p |
| 897 |
| 898 |
789 # True if the list of shared libraries is one and only for all | 899 # True if the list of shared libraries is one and only for all |
790 # processes, as opposed to a list of shared libraries per inferior. | 900 # processes, as opposed to a list of shared libraries per inferior. |
791 # This usually means that all processes, although may or may not share | 901 # This usually means that all processes, although may or may not share |
792 # an address space, will see the same set of symbols at the same | 902 # an address space, will see the same set of symbols at the same |
793 # addresses. | 903 # addresses. |
794 v:int:has_global_solist:::0:0::0 | 904 v:int:has_global_solist:::0:0::0 |
795 | 905 |
796 # On some targets, even though each inferior has its own private | 906 # On some targets, even though each inferior has its own private |
797 # address space, the debug interface takes care of making breakpoints | 907 # address space, the debug interface takes care of making breakpoints |
798 # visible to all address spaces automatically. For such cases, | 908 # visible to all address spaces automatically. For such cases, |
(...skipping 24 matching lines...) Expand all Loading... |
823 # considered a directory separator. | 933 # considered a directory separator. |
824 v:int:has_dos_based_file_system:::0:0::0 | 934 v:int:has_dos_based_file_system:::0:0::0 |
825 | 935 |
826 # Generate bytecodes to collect the return address in a frame. | 936 # Generate bytecodes to collect the return address in a frame. |
827 # Since the bytecodes run on the target, possibly with GDB not even | 937 # Since the bytecodes run on the target, possibly with GDB not even |
828 # connected, the full unwinding machinery is not available, and | 938 # connected, the full unwinding machinery is not available, and |
829 # typically this function will issue bytecodes for one or more likely | 939 # typically this function will issue bytecodes for one or more likely |
830 # places that the return address may be found. | 940 # places that the return address may be found. |
831 m:void:gen_return_address:struct agent_expr *ax, struct axs_value *value, CORE_A
DDR scope:ax, value, scope::default_gen_return_address::0 | 941 m:void:gen_return_address:struct agent_expr *ax, struct axs_value *value, CORE_A
DDR scope:ax, value, scope::default_gen_return_address::0 |
832 | 942 |
| 943 # Implement the "info proc" command. |
| 944 M:void:info_proc:char *args, enum info_proc_what what:args, what |
| 945 |
| 946 # Iterate over all objfiles in the order that makes the most sense |
| 947 # for the architecture to make global symbol searches. |
| 948 # |
| 949 # CB is a callback function where OBJFILE is the objfile to be searched, |
| 950 # and CB_DATA a pointer to user-defined data (the same data that is passed |
| 951 # when calling this gdbarch method). The iteration stops if this function |
| 952 # returns nonzero. |
| 953 # |
| 954 # CB_DATA is a pointer to some user-defined data to be passed to |
| 955 # the callback. |
| 956 # |
| 957 # If not NULL, CURRENT_OBJFILE corresponds to the objfile being |
| 958 # inspected when the symbol search was requested. |
| 959 m:void:iterate_over_objfiles_in_search_order:iterate_over_objfiles_in_search_ord
er_cb_ftype *cb, void *cb_data, struct objfile *current_objfile:cb, cb_data, cur
rent_objfile:0:default_iterate_over_objfiles_in_search_order::0 |
| 960 |
833 EOF | 961 EOF |
834 } | 962 } |
835 | 963 |
836 # | 964 # |
837 # The .log file | 965 # The .log file |
838 # | 966 # |
839 exec > new-gdbarch.log | 967 exec > new-gdbarch.log |
840 function_list | while do_read | 968 function_list | while do_read |
841 do | 969 do |
842 cat <<EOF | 970 cat <<EOF |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
938 struct disassemble_info; | 1066 struct disassemble_info; |
939 struct target_ops; | 1067 struct target_ops; |
940 struct obstack; | 1068 struct obstack; |
941 struct bp_target_info; | 1069 struct bp_target_info; |
942 struct target_desc; | 1070 struct target_desc; |
943 struct displaced_step_closure; | 1071 struct displaced_step_closure; |
944 struct core_regset_section; | 1072 struct core_regset_section; |
945 struct syscall; | 1073 struct syscall; |
946 struct agent_expr; | 1074 struct agent_expr; |
947 struct axs_value; | 1075 struct axs_value; |
| 1076 struct stap_parse_info; |
948 | 1077 |
949 /* The architecture associated with the connection to the target. | 1078 /* The architecture associated with the connection to the target. |
950 | 1079 |
951 The architecture vector provides some information that is really | 1080 The architecture vector provides some information that is really |
952 a property of the target: The layout of certain packets, for instance; | 1081 a property of the target: The layout of certain packets, for instance; |
953 or the solib_ops vector. Etc. To differentiate architecture accesses | 1082 or the solib_ops vector. Etc. To differentiate architecture accesses |
954 to per-target properties from per-thread/per-frame/per-objfile properties, | 1083 to per-target properties from per-thread/per-frame/per-objfile properties, |
955 accesses to per-target properties should be made through target_gdbarch. | 1084 accesses to per-target properties should be made through target_gdbarch. |
956 | 1085 |
957 Eventually, when support for multiple targets is implemented in | 1086 Eventually, when support for multiple targets is implemented in |
958 GDB, this global should be made target-specific. */ | 1087 GDB, this global should be made target-specific. */ |
959 extern struct gdbarch *target_gdbarch; | 1088 extern struct gdbarch *target_gdbarch; |
| 1089 |
| 1090 /* Callback type for the 'iterate_over_objfiles_in_search_order' |
| 1091 gdbarch method. */ |
| 1092 |
| 1093 typedef int (iterate_over_objfiles_in_search_order_cb_ftype) |
| 1094 (struct objfile *objfile, void *cb_data); |
960 EOF | 1095 EOF |
961 | 1096 |
962 # function typedef's | 1097 # function typedef's |
963 printf "\n" | 1098 printf "\n" |
964 printf "\n" | 1099 printf "\n" |
965 printf "/* The following are pre-initialized by GDBARCH. */\n" | 1100 printf "/* The following are pre-initialized by GDBARCH. */\n" |
966 function_list | while do_read | 1101 function_list | while do_read |
967 do | 1102 do |
968 if class_is_info_p | 1103 if class_is_info_p |
969 then | 1104 then |
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1268 | 1403 |
1269 #include "floatformat.h" | 1404 #include "floatformat.h" |
1270 | 1405 |
1271 #include "gdb_assert.h" | 1406 #include "gdb_assert.h" |
1272 #include "gdb_string.h" | 1407 #include "gdb_string.h" |
1273 #include "reggroups.h" | 1408 #include "reggroups.h" |
1274 #include "osabi.h" | 1409 #include "osabi.h" |
1275 #include "gdb_obstack.h" | 1410 #include "gdb_obstack.h" |
1276 #include "observer.h" | 1411 #include "observer.h" |
1277 #include "regcache.h" | 1412 #include "regcache.h" |
| 1413 #include "objfiles.h" |
1278 | 1414 |
1279 /* Static function declarations */ | 1415 /* Static function declarations */ |
1280 | 1416 |
1281 static void alloc_gdbarch_data (struct gdbarch *); | 1417 static void alloc_gdbarch_data (struct gdbarch *); |
1282 | 1418 |
1283 /* Non-zero if we want to trace architecture code. */ | 1419 /* Non-zero if we want to trace architecture code. */ |
1284 | 1420 |
1285 #ifndef GDBARCH_DEBUG | 1421 #ifndef GDBARCH_DEBUG |
1286 #define GDBARCH_DEBUG 0 | 1422 #define GDBARCH_DEBUG 0 |
1287 #endif | 1423 #endif |
(...skipping 873 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2161 NULL, | 2297 NULL, |
2162 show_gdbarch_debug, | 2298 show_gdbarch_debug, |
2163 &setdebuglist, &showdebuglist); | 2299 &setdebuglist, &showdebuglist); |
2164 } | 2300 } |
2165 EOF | 2301 EOF |
2166 | 2302 |
2167 # close things off | 2303 # close things off |
2168 exec 1>&2 | 2304 exec 1>&2 |
2169 #../move-if-change new-gdbarch.c gdbarch.c | 2305 #../move-if-change new-gdbarch.c gdbarch.c |
2170 compare_new gdbarch.c | 2306 compare_new gdbarch.c |
OLD | NEW |