GDB (xrefs)
Classes | Macros | Typedefs | Enumerations | Functions | Variables
/tmp/gdb-8.1/gdb/linespec.c File Reference
#include "defs.h"
#include "symtab.h"
#include "frame.h"
#include "command.h"
#include "symfile.h"
#include "objfiles.h"
#include "source.h"
#include "demangle.h"
#include "value.h"
#include "completer.h"
#include "cp-abi.h"
#include "cp-support.h"
#include "parser-defs.h"
#include "block.h"
#include "objc-lang.h"
#include "linespec.h"
#include "language.h"
#include "interps.h"
#include "mi/mi-cmds.h"
#include "target.h"
#include "arch-utils.h"
#include <ctype.h>
#include "cli/cli-utils.h"
#include "filenames.h"
#include "ada-lang.h"
#include "stack.h"
#include "location.h"
#include "common/function-view.h"
#include "common/def-vector.h"

Go to the source code of this file.

Classes

struct  address_entry
 
struct  linespec
 
struct  linespec_canonical_name
 
struct  linespec_state
 
struct  collect_info
 
struct  ls_token
 
struct  ls_parser
 
struct  decode_line_2_item
 
struct  collect_minsyms
 

Macros

#define IF_KEYWORD_INDEX   0
 
#define LS_TOKEN_STOKEN(TOK)   (TOK).data.string
 
#define LS_TOKEN_KEYWORD(TOK)   (TOK).data.keyword
 
#define PARSER_STREAM(P)   ((P)->lexer.stream)
 
#define PARSER_STATE(PPTR)   (&(PPTR)->state)
 
#define PARSER_RESULT(PPTR)   (&(PPTR)->result)
 
#define PARSER_EXPLICIT(PPTR)   (&PARSER_RESULT ((PPTR))->explicit_loc)
 

Typedefs

typedef struct symbolsymbolp
 
typedef struct typetypep
 
typedef struct bound_minimal_symbol bound_minimal_symbol_d
 
typedef struct linespeclinespec_p
 
typedef enum ls_token_type linespec_token_type
 
typedef struct ls_token linespec_token
 
typedef struct ls_parser linespec_parser
 

Enumerations

enum  linespec_complete_what {
  linespec_complete_what::NOTHING, linespec_complete_what::FUNCTION, linespec_complete_what::LABEL, linespec_complete_what::EXPRESSION,
  linespec_complete_what::KEYWORD
}
 
enum  ls_token_type {
  LSTOKEN_KEYWORD = 0, LSTOKEN_COLON, LSTOKEN_STRING, LSTOKEN_NUMBER,
  LSTOKEN_COMMA, LSTOKEN_EOI, LSTOKEN_CONSUMED
}
 

Functions

 DEF_VEC_P (symbolp)
 
 DEF_VEC_P (typep)
 
 DEF_VEC_O (bound_minimal_symbol_d)
 
static void iterate_over_file_blocks (struct symtab *symtab, const lookup_name_info &name, domain_enum domain, gdb::function_view< symbol_found_callback_ftype > callback)
 
static void initialize_defaults (struct symtab **default_symtab, int *default_line)
 
CORE_ADDR linespec_expression_to_pc (const char **exp_ptr)
 
static std::vector< symtab_and_linedecode_objc (struct linespec_state *self, linespec_p ls, const char *arg)
 
static VEC (symtab_ptr)
 
const char * linespec_lexer_lex_keyword (const char *p)
 
int is_ada_operator (const char *string)
 
static const char * skip_quote_char (const char *string, char quote_char)
 
static char * copy_token_string (linespec_token token)
 
static int is_closing_quote_enclosed (const char *p)
 
static const char * find_parameter_list_end (const char *input)
 
static size_t string_find_incomplete_keyword_at_end (const char *const *keywords, const char *string, size_t string_len)
 
static linespec_token linespec_lexer_lex_string (linespec_parser *parser)
 
static linespec_token linespec_lexer_lex_one (linespec_parser *parser)
 
static linespec_token linespec_lexer_consume_token (linespec_parser *parser)
 
static linespec_token linespec_lexer_peek_token (linespec_parser *parser)
 
static void add_sal_to_sals (struct linespec_state *self, std::vector< symtab_and_line > *sals, struct symtab_and_line *sal, const char *symname, int literal_canonical)
 
static hashval_t hash_address_entry (const void *p)
 
static int eq_address_entry (const void *a, const void *b)
 
static int maybe_add_address (htab_t set, struct program_space *pspace, CORE_ADDR addr)
 
static void iterate_over_all_matching_symtabs (struct linespec_state *state, const lookup_name_info &lookup_name, const domain_enum name_domain, enum search_domain search_domain, struct program_space *search_pspace, bool include_inline, gdb::function_view< symbol_found_callback_ftype > callback)
 
static const struct blockget_current_search_block (void)
 
static void find_methods (struct type *t, enum language t_lang, const char *name, VEC(const_char_ptr) **result_names, VEC(typep) **superclasses)
 
const char * find_toplevel_char (const char *s, char c)
 
static const char * find_toplevel_string (const char *haystack, const char *needle)
 
static char * canonical_to_fullform (const struct linespec_canonical_name *canonical)
 
static void filter_results (struct linespec_state *self, std::vector< symtab_and_line > *result, VEC(const_char_ptr) *filters)
 
static void convert_results_to_lsals (struct linespec_state *self, std::vector< symtab_and_line > *result)
 
static int decode_line_2_compare_items (const void *ap, const void *bp)
 
static void decode_line_2 (struct linespec_state *self, std::vector< symtab_and_line > *result, const char *select_mode)
 
static void ATTRIBUTE_NORETURN symbol_not_found_error (const char *symbol, const char *filename)
 
static void ATTRIBUTE_NORETURN unexpected_linespec_error (linespec_parser *parser)
 
static void ATTRIBUTE_NORETURN undefined_label_error (const char *function, const char *label)
 
static void ATTRIBUTE_NORETURN source_file_not_found_error (const char *name)
 
static linespec_token save_stream_and_consume_token (linespec_parser *parser)
 
struct line_offset linespec_parse_line_offset (const char *string)
 
static void set_completion_after_number (linespec_parser *parser, linespec_complete_what next)
 
static void linespec_parse_basic (linespec_parser *parser)
 
static void canonicalize_linespec (struct linespec_state *state, const linespec_p ls)
 
static std::vector< symtab_and_linecreate_sals_line_offset (struct linespec_state *self, linespec_p ls)
 
static std::vector< symtab_and_lineconvert_address_location_to_sals (struct linespec_state *self, CORE_ADDR address)
 
static std::vector< symtab_and_lineconvert_linespec_to_sals (struct linespec_state *state, linespec_p ls)
 
static void convert_explicit_location_to_linespec (struct linespec_state *self, linespec_p result, const char *source_filename, const char *function_name, symbol_name_match_type fname_match_type, const char *label_name, struct line_offset line_offset)
 
static std::vector< symtab_and_lineconvert_explicit_location_to_sals (struct linespec_state *self, linespec_p result, const struct explicit_location *explicit_loc)
 
static std::vector< symtab_and_lineparse_linespec (linespec_parser *parser, const char *arg, symbol_name_match_type match_type)
 
static void linespec_state_constructor (struct linespec_state *self, int flags, const struct language_defn *language, struct program_space *search_pspace, struct symtab *default_symtab, int default_line, struct linespec_result *canonical)
 
static void linespec_parser_new (linespec_parser *parser, int flags, const struct language_defn *language, struct program_space *search_pspace, struct symtab *default_symtab, int default_line, struct linespec_result *canonical)
 
static void linespec_state_destructor (struct linespec_state *self)
 
static void linespec_parser_delete (void *arg)
 
void linespec_lex_to_end (const char **stringp)
 
void linespec_complete_function (completion_tracker &tracker, const char *function, symbol_name_match_type func_match_type, const char *source_filename)
 
static void complete_linespec_component (linespec_parser *parser, completion_tracker &tracker, const char *text, linespec_complete_what component, const char *source_filename)
 
static void complete_label (completion_tracker &tracker, linespec_parser *parser, const char *label_name)
 
void linespec_complete_label (completion_tracker &tracker, const struct language_defn *language, const char *source_filename, const char *function_name, symbol_name_match_type func_name_match_type, const char *label_name)
 
void linespec_complete (completion_tracker &tracker, const char *text, symbol_name_match_type match_type)
 
static std::vector< symtab_and_lineevent_location_to_sals (linespec_parser *parser, const struct event_location *location)
 
void decode_line_full (const struct event_location *location, int flags, struct program_space *search_pspace, struct symtab *default_symtab, int default_line, struct linespec_result *canonical, const char *select_mode, const char *filter)
 
std::vector< symtab_and_linedecode_line_1 (const struct event_location *location, int flags, struct program_space *search_pspace, struct symtab *default_symtab, int default_line)
 
std::vector< symtab_and_linedecode_line_with_current_source (const char *string, int flags)
 
std::vector< symtab_and_linedecode_line_with_last_displayed (const char *string, int flags)
 
static VEC (symbolp)
 
static int compare_symbols (const void *a, const void *b)
 
static int compare_msymbols (const void *a, const void *b)
 
static void add_all_symbol_names_from_pspace (struct collect_info *info, struct program_space *pspace, VEC(const_char_ptr) *names, enum search_domain search_domain)
 
static void find_superclass_methods (VEC(typep) *superclasses, const char *name, enum language name_lang, VEC(const_char_ptr) **result_names)
 
static void find_method (struct linespec_state *self, VEC(symtab_ptr) *file_symtabs, const char *class_name, const char *method_name, VEC(symbolp) *sym_classes, VEC(symbolp) **symbols, VEC(bound_minimal_symbol_d) **minsyms)
 
static void find_function_symbols (struct linespec_state *state, VEC(symtab_ptr) *file_symtabs, const char *name, symbol_name_match_type name_match_type, VEC(symbolp) **symbols, VEC(bound_minimal_symbol_d) **minsyms)
 
static void find_linespec_symbols (struct linespec_state *state, VEC(symtab_ptr) *file_symtabs, const char *lookup_name, symbol_name_match_type name_match_type, VEC(symbolp) **symbols, VEC(bound_minimal_symbol_d) **minsyms)
 
static void find_label_symbols_in_block (const struct block *block, const char *name, struct symbol *fn_sym, bool completion_mode, VEC(symbolp) **result, VEC(symbolp) **label_funcs_ret)
 
static std::vector< symtab_and_linedecode_digits_list_mode (struct linespec_state *self, linespec_p ls, struct symtab_and_line val)
 
static std::vector< symtab_and_linedecode_digits_ordinary (struct linespec_state *self, linespec_p ls, int line, struct linetable_entry **best_entry)
 
static struct line_offset linespec_parse_variable (struct linespec_state *self, const char *variable)
 
static void minsym_found (struct linespec_state *self, struct objfile *objfile, struct minimal_symbol *msymbol, std::vector< symtab_and_line > *result)
 
static int classify_mtype (enum minimal_symbol_type t)
 
static int compare_msyms (const void *a, const void *b)
 
static void add_minsym (struct minimal_symbol *minsym, void *d)
 
static void search_minsyms_for_name (struct collect_info *info, const lookup_name_info &name, struct program_space *search_pspace, struct symtab *symtab)
 
static void add_matching_symbols_to_info (const char *name, symbol_name_match_type name_match_type, enum search_domain search_domain, struct collect_info *info, struct program_space *pspace)
 
static int symbol_to_sal (struct symtab_and_line *result, int funfirstline, struct symbol *sym)
 
const char * get_gdb_linespec_parser_quote_characters (void)
 

Variables

const char *const linespec_keywords [] = { "if", "thread", "task", NULL }
 

Macro Definition Documentation

◆ IF_KEYWORD_INDEX

#define IF_KEYWORD_INDEX   0

Definition at line 252 of file linespec.c.

Referenced by linespec_lexer_lex_keyword().

◆ LS_TOKEN_KEYWORD

#define LS_TOKEN_KEYWORD (   TOK)    (TOK).data.keyword

Definition at line 274 of file linespec.c.

Referenced by copy_token_string(), and linespec_lexer_lex_one().

◆ LS_TOKEN_STOKEN

#define LS_TOKEN_STOKEN (   TOK)    (TOK).data.string

◆ PARSER_EXPLICIT

#define PARSER_EXPLICIT (   PPTR)    (&PARSER_RESULT ((PPTR))->explicit_loc)

◆ PARSER_RESULT

#define PARSER_RESULT (   PPTR)    (&(PPTR)->result)

◆ PARSER_STATE

#define PARSER_STATE (   PPTR)    (&(PPTR)->state)

◆ PARSER_STREAM

#define PARSER_STREAM (   P)    ((P)->lexer.stream)

Typedef Documentation

◆ bound_minimal_symbol_d

Definition at line 95 of file linespec.c.

◆ linespec_p

typedef struct linespec* linespec_p

Definition at line 128 of file linespec.c.

◆ linespec_parser

typedef struct ls_parser linespec_parser

Definition at line 328 of file linespec.c.

◆ linespec_token

typedef struct ls_token linespec_token

Definition at line 271 of file linespec.c.

◆ linespec_token_type

Definition at line 247 of file linespec.c.

◆ symbolp

typedef struct symbol* symbolp

Definition at line 79 of file linespec.c.

◆ typep

typedef struct type* typep

Definition at line 82 of file linespec.c.

Enumeration Type Documentation

◆ linespec_complete_what

Enumerator
NOTHING 
FUNCTION 
LABEL 
EXPRESSION 
KEYWORD 

Definition at line 53 of file linespec.c.

◆ ls_token_type

Enumerator
LSTOKEN_KEYWORD 
LSTOKEN_COLON 
LSTOKEN_STRING 
LSTOKEN_NUMBER 
LSTOKEN_COMMA 
LSTOKEN_EOI 
LSTOKEN_CONSUMED 

Definition at line 224 of file linespec.c.

Function Documentation

◆ add_all_symbol_names_from_pspace()

static void add_all_symbol_names_from_pspace ( struct collect_info info,
struct program_space pspace,
VEC(const_char_ptr) *  names,
enum search_domain  search_domain 
)
static

Definition at line 3704 of file linespec.c.

References add_matching_symbols_to_info(), FULL, and VEC_iterate.

Referenced by decode_objc(), find_function_symbols(), and find_method().

◆ add_matching_symbols_to_info()

static void add_matching_symbols_to_info ( const char *  name,
symbol_name_match_type  name_match_type,
enum search_domain  search_domain,
struct collect_info info,
struct program_space pspace 
)
static

◆ add_minsym()

static void add_minsym ( struct minimal_symbol minsym,
void *  d 
)
static

◆ add_sal_to_sals()

static void add_sal_to_sals ( struct linespec_state self,
std::vector< symtab_and_line > *  sals,
struct symtab_and_line sal,
const char *  symname,
int  literal_canonical 
)
static

◆ canonical_to_fullform()

static char* canonical_to_fullform ( const struct linespec_canonical_name canonical)
static

◆ canonicalize_linespec()

static void canonicalize_linespec ( struct linespec_state state,
const linespec_p  ls 
)
static

◆ classify_mtype()

static int classify_mtype ( enum minimal_symbol_type  t)
static

Definition at line 4401 of file linespec.c.

References mst_file_bss, mst_file_data, mst_file_text, and mst_solib_trampoline.

Referenced by compare_msyms(), and search_minsyms_for_name().

◆ compare_msymbols()

static int compare_msymbols ( const void *  a,
const void *  b 
)
static

◆ compare_msyms()

static int compare_msyms ( const void *  a,
const void *  b 
)
static

Definition at line 4424 of file linespec.c.

References classify_mtype(), bound_minimal_symbol::minsym, and MSYMBOL_TYPE.

Referenced by search_minsyms_for_name().

◆ compare_symbols()

static int compare_symbols ( const void *  a,
const void *  b 
)
static

Definition at line 3643 of file linespec.c.

References symbol_symtab(), and SYMTAB_PSPACE.

Referenced by convert_linespec_to_sals(), and find_method().

◆ complete_label()

static void complete_label ( completion_tracker tracker,
linespec_parser parser,
const char *  label_name 
)
static

◆ complete_linespec_component()

static void complete_linespec_component ( linespec_parser parser,
completion_tracker tracker,
const char *  text,
linespec_complete_what  component,
const char *  source_filename 
)
static

◆ convert_address_location_to_sals()

static std::vector<symtab_and_line> convert_address_location_to_sals ( struct linespec_state self,
CORE_ADDR  address 
)
static

◆ convert_explicit_location_to_linespec()

static void convert_explicit_location_to_linespec ( struct linespec_state self,
linespec_p  result,
const char *  source_filename,
const char *  function_name,
symbol_name_match_type  fname_match_type,
const char *  label_name,
struct line_offset  line_offset 
)
static

◆ convert_explicit_location_to_sals()

static std::vector<symtab_and_line> convert_explicit_location_to_sals ( struct linespec_state self,
linespec_p  result,
const struct explicit_location explicit_loc 
)
static

◆ convert_linespec_to_sals()

static std::vector<symtab_and_line> convert_linespec_to_sals ( struct linespec_state state,
linespec_p  ls 
)
static

◆ convert_results_to_lsals()

static void convert_results_to_lsals ( struct linespec_state self,
std::vector< symtab_and_line > *  result 
)
static

Definition at line 1444 of file linespec.c.

References linespec_sals::canonical, and linespec_sals::sals.

Referenced by decode_line_2(), and decode_line_full().

◆ copy_token_string()

static char* copy_token_string ( linespec_token  token)
static

◆ create_sals_line_offset()

static std::vector<symtab_and_line> create_sals_line_offset ( struct linespec_state self,
linespec_p  ls 
)
static

◆ decode_digits_list_mode()

static std::vector<symtab_and_line> decode_digits_list_mode ( struct linespec_state self,
linespec_p  ls,
struct symtab_and_line  val 
)
static

◆ decode_digits_ordinary()

static std::vector<symtab_and_line> decode_digits_ordinary ( struct linespec_state self,
linespec_p  ls,
int  line,
struct linetable_entry **  best_entry 
)
static

◆ decode_line_1()

std::vector<symtab_and_line> decode_line_1 ( const struct event_location location,
int  flags,
struct program_space search_pspace,
struct symtab default_symtab,
int  default_line 
)

◆ decode_line_2()

static void decode_line_2 ( struct linespec_state self,
std::vector< symtab_and_line > *  result,
const char *  select_mode 
)
static

◆ decode_line_2_compare_items()

static int decode_line_2_compare_items ( const void *  ap,
const void *  bp 
)
static

Definition at line 1479 of file linespec.c.

References bp, decode_line_2_item::displayform, and decode_line_2_item::fullform.

Referenced by decode_line_2().

◆ decode_line_full()

void decode_line_full ( const struct event_location location,
int  flags,
struct program_space search_pspace,
struct symtab default_symtab,
int  default_line,
struct linespec_result canonical,
const char *  select_mode,
const char *  filter 
)

◆ decode_line_with_current_source()

std::vector<symtab_and_line> decode_line_with_current_source ( const char *  string,
int  flags 
)

◆ decode_line_with_last_displayed()

std::vector<symtab_and_line> decode_line_with_last_displayed ( const char *  string,
int  flags 
)

◆ decode_objc()

static std::vector< symtab_and_line > decode_objc ( struct linespec_state self,
linespec_p  ls,
const char *  arg 
)
static

◆ DEF_VEC_O()

DEF_VEC_O ( bound_minimal_symbol_d  )

◆ DEF_VEC_P() [1/2]

DEF_VEC_P ( symbolp  )

◆ DEF_VEC_P() [2/2]

DEF_VEC_P ( typep  )

◆ eq_address_entry()

static int eq_address_entry ( const void *  a,
const void *  b 
)
static

Definition at line 1075 of file linespec.c.

References address_entry::addr, and address_entry::pspace.

Referenced by linespec_state_constructor().

◆ event_location_to_sals()

static std::vector<symtab_and_line> event_location_to_sals ( linespec_parser parser,
const struct event_location location 
)
static

◆ filter_results()

static void filter_results ( struct linespec_state self,
std::vector< symtab_and_line > *  result,
VEC(const_char_ptr) *  filters 
)
static

◆ find_function_symbols()

static void find_function_symbols ( struct linespec_state state,
VEC(symtab_ptr) *  file_symtabs,
const char *  name,
symbol_name_match_type  name_match_type,
VEC(symbolp) **  symbols,
VEC(bound_minimal_symbol_d) **  minsyms 
)
static

◆ find_label_symbols_in_block()

static void find_label_symbols_in_block ( const struct block block,
const char *  name,
struct symbol fn_sym,
bool  completion_mode,
VEC(symbolp) **  result,
VEC(symbolp) **  label_funcs_ret 
)
static

◆ find_linespec_symbols()

static void find_linespec_symbols ( struct linespec_state state,
VEC(symtab_ptr) *  file_symtabs,
const char *  lookup_name,
symbol_name_match_type  name_match_type,
VEC(symbolp) **  symbols,
VEC(bound_minimal_symbol_d) **  minsyms 
)
static

◆ find_method()

static void find_method ( struct linespec_state self,
VEC(symtab_ptr) *  file_symtabs,
const char *  class_name,
const char *  method_name,
VEC(symbolp) *  sym_classes,
VEC(symbolp) **  symbols,
VEC(bound_minimal_symbol_d) **  minsyms 
)
static

◆ find_methods()

static void find_methods ( struct type t,
enum language  t_lang,
const char *  name,
VEC(const_char_ptr) **  result_names,
VEC(typep) **  superclasses 
)
static

◆ find_parameter_list_end()

static const char* find_parameter_list_end ( const char *  input)
static

Definition at line 570 of file linespec.c.

Referenced by linespec_lexer_lex_string().

◆ find_superclass_methods()

static void find_superclass_methods ( VEC(typep) *  superclasses,
const char *  name,
enum language  name_lang,
VEC(const_char_ptr) **  result_names 
)
static

◆ find_toplevel_char()

const char* find_toplevel_char ( const char *  s,
char  c 
)

◆ find_toplevel_string()

static const char* find_toplevel_string ( const char *  haystack,
const char *  needle 
)
static

Definition at line 1362 of file linespec.c.

References find_toplevel_char(), and startswith().

Referenced by find_linespec_symbols().

◆ get_current_search_block()

static const struct block* get_current_search_block ( void  )
static

◆ get_gdb_linespec_parser_quote_characters()

const char* get_gdb_linespec_parser_quote_characters ( void  )

Definition at line 4656 of file linespec.c.

Referenced by explicit_location_lex_one(), and explicit_location_lex_one_function().

◆ hash_address_entry()

static hashval_t hash_address_entry ( const void *  p)
static

Definition at line 1063 of file linespec.c.

References address_entry::addr, hash(), and address_entry::pspace.

Referenced by linespec_state_constructor().

◆ initialize_defaults()

static void initialize_defaults ( struct symtab **  default_symtab,
int *  default_line 
)
static

◆ is_ada_operator()

int is_ada_operator ( const char *  string)

◆ is_closing_quote_enclosed()

static int is_closing_quote_enclosed ( const char *  p)
static

◆ iterate_over_all_matching_symtabs()

static void iterate_over_all_matching_symtabs ( struct linespec_state state,
const lookup_name_info lookup_name,
const domain_enum  name_domain,
enum search_domain  search_domain,
struct program_space search_pspace,
bool  include_inline,
gdb::function_view< symbol_found_callback_ftype callback 
)
static

◆ iterate_over_file_blocks()

static void iterate_over_file_blocks ( struct symtab symtab,
const lookup_name_info name,
domain_enum  domain,
gdb::function_view< symbol_found_callback_ftype callback 
)
static

◆ linespec_complete()

void linespec_complete ( completion_tracker tracker,
const char *  text,
symbol_name_match_type  match_type 
)

◆ linespec_complete_function()

void linespec_complete_function ( completion_tracker tracker,
const char *  function,
symbol_name_match_type  func_match_type,
const char *  source_filename 
)

◆ linespec_complete_label()

void linespec_complete_label ( completion_tracker tracker,
const struct language_defn language,
const char *  source_filename,
const char *  function_name,
symbol_name_match_type  func_name_match_type,
const char *  label_name 
)

◆ linespec_expression_to_pc()

CORE_ADDR linespec_expression_to_pc ( const char **  exp_ptr)

◆ linespec_lex_to_end()

void linespec_lex_to_end ( const char **  stringp)

◆ linespec_lexer_consume_token()

static linespec_token linespec_lexer_consume_token ( linespec_parser parser)
static

◆ linespec_lexer_lex_keyword()

const char* linespec_lexer_lex_keyword ( const char *  p)

◆ linespec_lexer_lex_one()

static linespec_token linespec_lexer_lex_one ( linespec_parser parser)
static

◆ linespec_lexer_lex_string()

static linespec_token linespec_lexer_lex_string ( linespec_parser parser)
static

◆ linespec_lexer_peek_token()

static linespec_token linespec_lexer_peek_token ( linespec_parser parser)
static

◆ linespec_parse_basic()

static void linespec_parse_basic ( linespec_parser parser)
static

◆ linespec_parse_line_offset()

struct line_offset linespec_parse_line_offset ( const char *  string)

◆ linespec_parse_variable()

static struct line_offset linespec_parse_variable ( struct linespec_state self,
const char *  variable 
)
static

◆ linespec_parser_delete()

static void linespec_parser_delete ( void *  arg)
static

◆ linespec_parser_new()

static void linespec_parser_new ( linespec_parser parser,
int  flags,
const struct language_defn language,
struct program_space search_pspace,
struct symtab default_symtab,
int  default_line,
struct linespec_result canonical 
)
static

◆ linespec_state_constructor()

static void linespec_state_constructor ( struct linespec_state self,
int  flags,
const struct language_defn language,
struct program_space search_pspace,
struct symtab default_symtab,
int  default_line,
struct linespec_result canonical 
)
static

◆ linespec_state_destructor()

static void linespec_state_destructor ( struct linespec_state self)
static

Definition at line 2778 of file linespec.c.

Referenced by linespec_parser_delete().

◆ maybe_add_address()

static int maybe_add_address ( htab_t  set,
struct program_space pspace,
CORE_ADDR  addr 
)
static

Definition at line 1088 of file linespec.c.

References address_entry::addr, address_entry::pspace, and XNEW.

Referenced by convert_linespec_to_sals(), and minsym_found().

◆ minsym_found()

static void minsym_found ( struct linespec_state self,
struct objfile objfile,
struct minimal_symbol msymbol,
std::vector< symtab_and_line > *  result 
)
static

◆ parse_linespec()

static std::vector<symtab_and_line> parse_linespec ( linespec_parser parser,
const char *  arg,
symbol_name_match_type  match_type 
)
static

◆ save_stream_and_consume_token()

static linespec_token save_stream_and_consume_token ( linespec_parser parser)
static

◆ search_minsyms_for_name()

static void search_minsyms_for_name ( struct collect_info info,
const lookup_name_info name,
struct program_space search_pspace,
struct symtab symtab 
)
static

◆ set_completion_after_number()

static void set_completion_after_number ( linespec_parser parser,
linespec_complete_what  next 
)
static

◆ skip_quote_char()

static const char* skip_quote_char ( const char *  string,
char  quote_char 
)
static

Definition at line 520 of file linespec.c.

References find_toplevel_char().

Referenced by linespec_lexer_lex_string(), and parse_linespec().

◆ source_file_not_found_error()

static void ATTRIBUTE_NORETURN source_file_not_found_error ( const char *  name)
static

Definition at line 1726 of file linespec.c.

References _, name, NOT_FOUND_ERROR, and throw_error().

Referenced by convert_explicit_location_to_linespec().

◆ string_find_incomplete_keyword_at_end()

static size_t string_find_incomplete_keyword_at_end ( const char *const *  keywords,
const char *  string,
size_t  string_len 
)
static

Definition at line 609 of file linespec.c.

References string.

Referenced by linespec_complete().

◆ symbol_not_found_error()

static void ATTRIBUTE_NORETURN symbol_not_found_error ( const char *  symbol,
const char *  filename 
)
static

◆ symbol_to_sal()

static int symbol_to_sal ( struct symtab_and_line result,
int  funfirstline,
struct symbol sym 
)
static

◆ undefined_label_error()

static void ATTRIBUTE_NORETURN undefined_label_error ( const char *  function,
const char *  label 
)
static

Definition at line 1711 of file linespec.c.

References _, NOT_FOUND_ERROR, and throw_error().

Referenced by convert_explicit_location_to_linespec(), and linespec_parse_basic().

◆ unexpected_linespec_error()

static void ATTRIBUTE_NORETURN unexpected_linespec_error ( linespec_parser parser)
static

◆ VEC() [1/2]

static VEC ( symtab_ptr  )
static

◆ VEC() [2/2]

static VEC ( symbolp  )
static

Variable Documentation

◆ linespec_keywords

const char* const linespec_keywords[] = { "if", "thread", "task", NULL }