GDB (xrefs)

Classes | Typedefs | Enumerations | Functions
/tmp/gdb-8.1/gdb/macrotab.h File Reference
`#include "common/function-view.h"`

Go to the source code of this file.

## Classes
struct | macro_source_file
struct | macro_definition

## Typedefs
typedef void() | macro_callback_fn(const char *name, const struct macro_definition *definition, struct macro_source_file *source, int line)

## Enumerations
enum | macro_kind { macro_object_like, macro_function_like }
enum | macro_special_kind { macro_ordinary, macro_FILE, macro_LINE }

## Functions
struct macro_table * | new_macro_table (struct obstack *obstack, struct bcache *bcache, struct compunit_symtab *cust)
void | free_macro_table (struct macro_table *table)
struct macro_source_file * | macro_set_main (struct macro_table *table, const char *filename)
struct macro_source_file * | macro_main (struct macro_table *table)
void | macro_allow_redefinitions (struct macro_table *table)
struct macro_source_file * | macro_include (struct macro_source_file *source, int line, const char *included)
void | macro_define_special (struct macro_table *table)
struct macro_source_file * | macro_lookup_inclusion (struct macro_source_file *source, const char *name)
void | macro_define_object (struct macro_source_file *source, int line, const char *name, const char *replacement)
void | macro_define_function (struct macro_source_file *source, int line, const char *name, int argc, const char **argv, const char *replacement)
void | macro_undef (struct macro_source_file *source, int line, const char *name)
struct macro_definition * | macro_lookup_definition (struct macro_source_file *source, int line, const char *name)
struct macro_source_file * | macro_definition_location (struct macro_source_file *source, int line, const char *name, int *definition_line)
void | macro_for_each (struct macro_table *table, gdb::function_view< macro_callback_fn > fn)
void | macro_for_each_in_scope (struct macro_source_file *file, int line, gdb::function_view< macro_callback_fn > fn)
char * | macro_source_fullname (struct macro_source_file *file)

## Typedef Documentation

## ◆ macro_callback_fn

typedef void() macro_callback_fn(const char *name, const struct macro_definition *definition, struct macro_source_file *source, int line)

Definition at line 338 of file macrotab.h.

## Enumeration Type Documentation

## ◆ macro_kind

enum macro_kind

Enumerator
macro_object_like |
macro_function_like |

Definition at line 269 of file macrotab.h.

## ◆ macro_special_kind

enum macro_special_kind

Enumerator
macro_ordinary |
macro_FILE |
macro_LINE |

Definition at line 277 of file macrotab.h.

## Function Documentation

## ◆ free_macro_table()

void free_macro_table | ( | struct macro_table * | table | ) |

Definition at line 1078 of file macrotab.c.

References macro_table::definitions, free_macro_source_file(), and macro_table::main_source.

Referenced by scoped_free_pendings::~scoped_free_pendings().

## ◆ macro_allow_redefinitions()

void macro_allow_redefinitions | ( | struct macro_table * | table | ) |

Definition at line 442 of file macrotab.c.

References gdb_assert, macro_table::obstack, and macro_table::redef_ok.

Referenced by _initialize_macroscope().

## ◆ macro_define_function()

void macro_define_function | ( | struct macro_source_file * | source,
|  | int | line,
|  | const char * | name,
|  | int | argc,
|  | const char ** | argv,
|  | const char * | replacement
| ) |  |

Definition at line 803 of file macrotab.c.

References macro_definition::argc, gdb::argv, check_for_redefinition(), macro_table::definitions, key_compare(), macro_function_like, name, new_macro_definition(), new_macro_key(), macro_table::redef_ok, macro_definition::replacement, and macro_source_file::table.

Referenced by macro_define_command(), and parse_macro_definition().

## ◆ macro_define_object()

void macro_define_object | ( | struct macro_source_file * | source,
|  | int | line,
|  | const char * | name,
|  | const char * | replacement
| ) |  |

Definition at line 784 of file macrotab.c.

References macro_define_object_internal(), macro_ordinary, name, and macro_definition::replacement.

Referenced by macro_define_command(), and parse_macro_definition().

## ◆ macro_define_special()

void macro_define_special | ( | struct macro_table * | table | ) |

Definition at line 794 of file macrotab.c.

References macro_define_object_internal(), macro_FILE, macro_LINE, macro_table::main_source, and macro_definition::table.

Referenced by macro_start_file().

## ◆ macro_definition_location()

struct macro_source_file* macro_definition_location | ( | struct macro_source_file * | source,
|  | int | line,
|  | const char * | name,
|  | int * | definition_line
| ) |  |

Definition at line 944 of file macrotab.c.

References find_definition(), name, macro_key::start_file, and macro_key::start_line.

Referenced by info_macro_command().

## ◆ macro_for_each()

void macro_for_each | ( | struct macro_table * | table,
|  | gdb::function_view< macro_callback_fn > | fn
| ) |  |

Definition at line 993 of file macrotab.c.

References macro_table::definitions, macro_for_each_data::file, macro_for_each_data::fn, foreach_macro(), and macro_for_each_data::line.

Referenced by default_collect_symbol_completion_matches_break_on(), info_macro_command(), and macro_list_command().

## ◆ macro_for_each_in_scope()

void macro_for_each_in_scope | ( | struct macro_source_file * | file,
|  | int | line,
|  | gdb::function_view< macro_callback_fn > | fn
| ) |  |

Definition at line 1030 of file macrotab.c.

References macro_table::definitions, macro_for_each_data::file, macro_for_each_data::fn, foreach_macro_in_scope(), macro_for_each_data::line, and macro_source_file::table.

Referenced by default_collect_symbol_completion_matches_break_on(), info_macros_command(), and write_macro_definitions().

## ◆ macro_include()

struct macro_source_file* macro_include | ( | struct macro_source_file * | source,
|  | int | line,
|  | const char * | included
| ) |  |

Definition at line 450 of file macrotab.c.

References _, complaint, macro_source_file::included_at_line, macro_source_file::included_by, macro_source_file::includes, macro_source_fullname(), new_source_file(), macro_source_file::next_included, symfile_complaints, macro_source_file::table, and xfree().

Referenced by macro_start_file().

## ◆ macro_lookup_definition()

struct macro_definition* macro_lookup_definition | ( | struct macro_source_file * | source,
|  | int | line,
|  | const char * | name
| ) |  |

Definition at line 922 of file macrotab.c.

References find_definition(), fixup_definition(), macro_source_fullname(), name, and xfree().

Referenced by info_macro_command(), and standard_macro_lookup().

## ◆ macro_lookup_inclusion()

struct macro_source_file* macro_lookup_inclusion | ( | struct macro_source_file * | source,
|  | const char * | name
| ) |  |

Definition at line 511 of file macrotab.c.

References macro_source_file::filename, macro_source_file::includes, inclusion_depth(), macro_lookup_inclusion(), name, and macro_source_file::next_included.

Referenced by macro_lookup_inclusion(), and sal_macro_scope().

## ◆ macro_main()

struct macro_source_file* macro_main | ( | struct macro_table * | table | ) |

Definition at line 433 of file macrotab.c.

References gdb_assert, and macro_table::main_source.

Referenced by macro_define_command(), macro_undef_command(), sal_macro_scope(), standard_macro_lookup(), and user_macro_scope().

## ◆ macro_set_main()

struct macro_source_file* macro_set_main | ( | struct macro_table * | table,
|  | const char * | filename
| ) |  |

Definition at line 419 of file macrotab.c.

References macro_source_file::filename, gdb_assert, macro_table::main_source, and new_source_file().

Referenced by _initialize_macroscope(), and macro_start_file().

## ◆ macro_source_fullname()

char* macro_source_fullname | ( | struct macro_source_file * | file | ) |

Definition at line 1090 of file macrotab.c.

References COMPUNIT_DIRNAME, macro_table::compunit_symtab, macro_source_file::filename, SLASH_STRING, and macro_source_file::table.

Referenced by check_for_redefinition(), foreach_macro(), foreach_macro_in_scope(), macro_include(), macro_lookup_definition(), macro_undef(), and show_pp_source_pos().

## ◆ macro_undef()

void macro_undef | ( | struct macro_source_file * | source,
|  | int | line,
|  | const char * | name
| ) |  |

Definition at line 831 of file macrotab.c.

References _, complaint, macro_table::definitions, macro_key::end_file, macro_key::end_line, macro_source_file::filename, find_definition(), if(), macro_source_fullname(), name, macro_key::start_file, macro_key::start_line, symfile_complaints, macro_source_file::table, and xfree().

Referenced by dwarf_decode_macro_bytes(), and macro_undef_command().

## ◆ new_macro_table()

struct macro_table* new_macro_table | ( | struct obstack * | obstack,
|  | struct bcache * | bcache,
|  | struct compunit_symtab * | cust
| ) |  |

Definition at line 1048 of file macrotab.c.

References macro_table::bcache, macro_table::compunit_symtab, macro_table::definitions, macro_alloc(), macro_free(), macro_tree_compare(), macro_tree_delete_key(), macro_tree_delete_value(), macro_table::main_source, memset(), macro_table::obstack, macro_table::redef_ok, and XNEW.

Referenced by _initialize_macroscope(), and get_macro_table().