Blame dwarfdump/glflags.h

Packit cdaae3
/*
Packit cdaae3
  Copyright (C) 2017-2017 David Anderson. All Rights Reserved.
Packit cdaae3
Packit cdaae3
  This program is free software; you can redistribute it and/or modify it
Packit cdaae3
  under the terms of version 2 of the GNU General Public License as
Packit cdaae3
  published by the Free Software Foundation.
Packit cdaae3
Packit cdaae3
  This program is distributed in the hope that it would be useful, but
Packit cdaae3
  WITHOUT ANY WARRANTY; without even the implied warranty of
Packit cdaae3
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Packit cdaae3
Packit cdaae3
  Further, this software is distributed without any warranty that it is
Packit cdaae3
  free of the rightful claim of any third person regarding infringement
Packit cdaae3
  or the like.  Any license provided herein, whether implied or
Packit cdaae3
  otherwise, applies only to this software file.  Patent licenses, if
Packit cdaae3
  any, provided herein do not apply to combinations of this program with
Packit cdaae3
  other software, or any other product whatsoever.
Packit cdaae3
Packit cdaae3
  You should have received a copy of the GNU General Public License along
Packit cdaae3
  with this program; if not, write the Free Software Foundation, Inc., 51
Packit cdaae3
  Franklin Street - Fifth Floor, Boston MA 02110-1301, USA.
Packit cdaae3
*/
Packit cdaae3
Packit cdaae3
/*  All the dwarfdump flags are gathered into a single
Packit cdaae3
    global struct as it has been hard to know how many there
Packit cdaae3
    were or what they were all for. */
Packit cdaae3
Packit cdaae3
Packit cdaae3
struct glflags_s {
Packit cdaae3
Packit cdaae3
    /* This so both
Packit cdaae3
        dwarf_loclist_n()  and dwarf_get_loclist_c()
Packit cdaae3
        and the dwarf_loclist_from_expr
Packit cdaae3
        variations can be
Packit cdaae3
        tested. Defaults to new
Packit cdaae3
        dwarf_get_loclist_c(). See -g option.
Packit cdaae3
        original IRIX dwarf_loclist() no longer tested
Packit cdaae3
        as of October 2015. */
Packit cdaae3
    boolean gf_use_old_dwarf_loclist;
Packit cdaae3
    enum line_flag_type_e gf_line_flag_selection;
Packit cdaae3
Packit cdaae3
    boolean gf_abbrev_flag;
Packit cdaae3
    boolean gf_aranges_flag; /* .debug_aranges section. */
Packit cdaae3
    boolean gf_debug_names_flag;
Packit cdaae3
    boolean gf_eh_frame_flag;   /* GNU .eh_frame section. */
Packit cdaae3
    boolean gf_frame_flag;      /* .debug_frame section. */
Packit cdaae3
    boolean gf_gdbindex_flag;   /* .gdbindex section. */
Packit cdaae3
    boolean gf_info_flag;  /* .debug_info */
Packit cdaae3
    boolean gf_line_flag;
Packit cdaae3
    boolean gf_line_print_pc;
Packit cdaae3
    boolean gf_line_skeleton_flag;
Packit cdaae3
    boolean gf_loc_flag;
Packit cdaae3
    boolean gf_macinfo_flag; /* DWARF2,3,4. Old macro section*/
Packit cdaae3
    boolean gf_macro_flag; /* DWARF5 */
Packit cdaae3
    boolean gf_pubnames_flag;
Packit cdaae3
    boolean gf_ranges_flag; /* .debug_ranges section. */
Packit cdaae3
    boolean gf_reloc_flag;  /* Elf relocations, not DWARF. */
Packit cdaae3
    boolean gf_static_func_flag;/* SGI only */
Packit cdaae3
    boolean gf_static_var_flag; /* SGI only */
Packit cdaae3
    boolean gf_string_flag;
Packit cdaae3
    boolean gf_pubtypes_flag;   /* SGI only */
Packit cdaae3
    boolean gf_types_flag; /* .debug_types, not all CU types */
Packit cdaae3
    boolean gf_weakname_flag;   /* SGI only */
Packit cdaae3
Packit cdaae3
    boolean gf_header_flag; /* Control printing of Elf header. */
Packit cdaae3
    boolean gf_section_groups_flag;
Packit cdaae3
Packit cdaae3
    boolean gf_producer_children_flag;   /* List of CUs per compiler */
Packit cdaae3
    boolean gf_check_abbrev_code;
Packit cdaae3
    boolean gf_check_pubname_attr;
Packit cdaae3
    boolean gf_check_reloc_offset;
Packit cdaae3
    boolean gf_check_attr_tag;
Packit cdaae3
    boolean gf_check_tag_tree;
Packit cdaae3
    boolean gf_check_type_offset;
Packit cdaae3
    boolean gf_check_decl_file;
Packit cdaae3
    boolean gf_check_macros;
Packit cdaae3
    boolean gf_check_lines;
Packit cdaae3
    boolean gf_check_fdes;
Packit cdaae3
    boolean gf_check_ranges;
Packit cdaae3
    boolean gf_check_aranges;
Packit cdaae3
    boolean gf_check_harmless;
Packit cdaae3
    boolean gf_check_abbreviations;
Packit cdaae3
    boolean gf_check_dwarf_constants;
Packit cdaae3
    boolean gf_check_di_gaps;
Packit cdaae3
    boolean gf_check_forward_decl;
Packit cdaae3
    boolean gf_check_self_references;
Packit cdaae3
    boolean gf_check_attr_encoding;   /* Attributes encoding */
Packit cdaae3
    boolean gf_generic_1200_regs;
Packit cdaae3
    boolean gf_suppress_check_extensions_tables;
Packit cdaae3
    boolean gf_check_duplicated_attributes;
Packit cdaae3
    /* lots of checks make no sense on a dwp debugfission object. */
Packit cdaae3
    boolean gf_suppress_checking_on_dwp;
Packit cdaae3
Packit cdaae3
    /*  suppress_nested_name_search is a band-aid.
Packit cdaae3
        A workaround. A real fix for N**2 behavior is needed.  */
Packit cdaae3
    boolean gf_suppress_nested_name_search;
Packit cdaae3
    boolean gf_uri_options_translation;
Packit cdaae3
    boolean gf_do_print_uri_in_input;
Packit cdaae3
Packit cdaae3
    /* Print global (unique) error messages */
Packit cdaae3
    boolean gf_print_unique_errors;
Packit cdaae3
    boolean gf_found_error_message;
Packit cdaae3
Packit cdaae3
    boolean gf_check_names;
Packit cdaae3
    boolean gf_check_verbose_mode; /* During '-k' mode, display errors */
Packit cdaae3
    boolean gf_check_frames;
Packit cdaae3
    boolean gf_check_frames_extended;    /* Extensive frames check */
Packit cdaae3
    boolean gf_check_locations;          /* Location list check */
Packit cdaae3
Packit cdaae3
    boolean gf_print_usage_tag_attr;      /* Print basic usage */
Packit cdaae3
    boolean gf_print_usage_tag_attr_full; /* Print full usage */
Packit cdaae3
Packit cdaae3
    boolean gf_check_all_compilers;
Packit cdaae3
    boolean gf_check_snc_compiler; /* Check SNC compiler */
Packit cdaae3
    boolean gf_check_gcc_compiler;
Packit cdaae3
    boolean gf_print_summary_all;
Packit cdaae3
Packit cdaae3
    /* The check and print flags here make it easy to
Packit cdaae3
        allow check-only or print-only.  We no longer support
Packit cdaae3
        check-and-print in a single run.  */
Packit cdaae3
    boolean gf_do_check_dwarf;
Packit cdaae3
    boolean gf_do_print_dwarf;
Packit cdaae3
    boolean gf_check_show_results;  /* Display checks results. */
Packit cdaae3
    boolean gf_record_dwarf_error;  /* A test has failed, this
Packit cdaae3
        is normally set FALSE shortly after being set TRUE, it is
Packit cdaae3
        a short-range hint we should print something we might not
Packit cdaae3
        otherwise print (under the circumstances). */
Packit cdaae3
Packit cdaae3
    boolean gf_check_debug_names;
Packit cdaae3
Packit cdaae3
    /* Display parent/children when in wide format? */
Packit cdaae3
    boolean gf_display_parent_tree;
Packit cdaae3
    boolean gf_display_children_tree;
Packit cdaae3
    int     gf_stop_indent_level;
Packit cdaae3
Packit cdaae3
    /* Print search results in wide format? */
Packit cdaae3
    boolean gf_search_wide_format;
Packit cdaae3
Packit cdaae3
    /* -S option: strings for 'any' and 'match' */
Packit cdaae3
    boolean gf_search_is_on;
Packit cdaae3
Packit cdaae3
    boolean gf_search_print_results;
Packit cdaae3
    boolean gf_cu_name_flag;
Packit cdaae3
    boolean gf_show_global_offsets;
Packit cdaae3
    boolean gf_display_offsets;
Packit cdaae3
};
Packit cdaae3
Packit cdaae3
extern struct glflags_s glflags;
Packit cdaae3
Packit cdaae3
extern void init_global_flags(void);
Packit cdaae3
Packit cdaae3