GDB (xrefs)
Loading...
Searching...
No Matches
Macros | Functions | Variables
cp-support.c File Reference
#include "defs.h"
#include "cp-support.h"
#include "language.h"
#include "demangle.h"
#include "gdbcmd.h"
#include "dictionary.h"
#include "objfiles.h"
#include "frame.h"
#include "symtab.h"
#include "block.h"
#include "complaints.h"
#include "gdbtypes.h"
#include "expression.h"
#include "value.h"
#include "cp-abi.h"
#include "namespace.h"
#include <signal.h>
#include "gdbsupport/gdb_setjmp.h"
#include "gdbsupport/gdb-safe-ctype.h"
#include "gdbsupport/selftest.h"
#include "gdbsupport/gdb-sigmask.h"
#include <atomic>
#include "event-top.h"
#include "run-on-main-thread.h"
#include "typeprint.h"

Go to the source code of this file.

Macros

#define d_left(dc)   (dc)->u.s_binary.left
 
#define d_right(dc)   (dc)->u.s_binary.right
 

Functions

static unsigned int cp_find_first_component_aux (const char *name, int permissive)
 
static void demangled_name_complaint (const char *name)
 
static void overload_list_add_symbol (struct symbol *sym, const char *oload_name, std::vector< symbol * > *overload_list)
 
static void add_symbol_overload_list_using (const char *func_name, const char *the_namespace, std::vector< symbol * > *overload_list)
 
static void add_symbol_overload_list_qualified (const char *func_name, std::vector< symbol * > *overload_list)
 
static void replace_typedefs (struct demangle_parse_info *info, struct demangle_component *ret_comp, canonicalization_ftype *finder, void *data)
 
static struct demangle_component * gdb_cplus_demangle_v3_components (const char *mangled, int options, void **mem)
 
static char * copy_string_to_obstack (struct obstack *obstack, const char *string, long *len)
 
static int cp_already_canonical (const char *string)
 
static int inspect_type (struct demangle_parse_info *info, struct demangle_component *ret_comp, canonicalization_ftype *finder, void *data)
 
static bool replace_typedefs_template (struct demangle_parse_info *info, string_file &buf, struct demangle_component *tmpl, struct demangle_component *repl, canonicalization_ftype *finder, void *data)
 
static void replace_typedefs_qualified_name (struct demangle_parse_info *info, struct demangle_component *ret_comp, canonicalization_ftype *finder, void *data)
 
static void check_cv_qualifiers (struct demangle_component *ret_comp)
 
gdb::unique_xmalloc_ptr< char > cp_canonicalize_string_full (const char *string, canonicalization_ftype *finder, void *data)
 
gdb::unique_xmalloc_ptr< char > cp_canonicalize_string_no_typedefs (const char *string)
 
gdb::unique_xmalloc_ptr< char > cp_canonicalize_string (const char *string)
 
static std::unique_ptr< demangle_parse_infomangled_name_to_comp (const char *mangled_name, int options, void **memory, gdb::unique_xmalloc_ptr< char > *demangled_p)
 
char * cp_class_name_from_physname (const char *physname)
 
static struct demangle_component * unqualified_name_from_comp (struct demangle_component *comp)
 
char * method_name_from_physname (const char *physname)
 
gdb::unique_xmalloc_ptr< char > cp_func_name (const char *full_name)
 
static gdb::unique_xmalloc_ptr< char > cp_remove_params_1 (const char *demangled_name, bool require_params)
 
gdb::unique_xmalloc_ptr< char > cp_remove_params (const char *demangled_name)
 
gdb::unique_xmalloc_ptr< char > cp_remove_params_if_any (const char *demangled_name, bool completion_mode)
 
unsigned int cp_find_first_component (const char *name)
 
unsigned int cp_entire_prefix_len (const char *name)
 
struct std::vector< symbol * > make_symbol_overload_list (const char *func_name, const char *the_namespace)
 
static void add_symbol_overload_list_block (const char *name, const struct block *block, std::vector< symbol * > *overload_list)
 
static void add_symbol_overload_list_namespace (const char *func_name, const char *the_namespace, std::vector< symbol * > *overload_list)
 
static void add_symbol_overload_list_adl_namespace (struct type *type, const char *func_name, std::vector< symbol * > *overload_list)
 
void add_symbol_overload_list_adl (gdb::array_view< type * > arg_types, const char *func_name, std::vector< symbol * > *overload_list)
 
struct typecp_lookup_rtti_type (const char *name, const struct block *block)
 
gdb::unique_xmalloc_ptr< char > gdb_demangle (const char *name, int options)
 
char * gdb_cplus_demangle_print (int options, struct demangle_component *tree, int estimated_length, size_t *p_allocated_size)
 
unsigned int cp_search_name_hash (const char *search_name)
 
static bool cp_symbol_name_matches_1 (const char *symbol_search_name, const char *lookup_name, size_t lookup_name_len, strncmp_iw_mode mode, completion_match_result *comp_match_res)
 
static bool cp_fq_symbol_name_matches (const char *symbol_search_name, const lookup_name_info &lookup_name, completion_match_result *comp_match_res)
 
static bool cp_symbol_name_matches (const char *symbol_search_name, const lookup_name_info &lookup_name, completion_match_result *comp_match_res)
 
symbol_name_matcher_ftypecp_get_symbol_name_matcher (const lookup_name_info &lookup_name)
 
static void first_component_command (const char *arg, int from_tty)
 
static void info_vtbl_command (const char *arg, int from_tty)
 
const char * find_toplevel_char (const char *s, char c)
 
void _initialize_cp_support ()
 

Variables

struct cmd_list_elementmaint_cplus_cmd_list = NULL
 

Macro Definition Documentation

◆ d_left

#define d_left ( dc)    (dc)->u.s_binary.left

◆ d_right

#define d_right ( dc)    (dc)->u.s_binary.right

Function Documentation

◆ _initialize_cp_support()

void _initialize_cp_support ( )

Definition at line 2325 of file cp-support.c.

Referenced by initialize_all_files().

◆ add_symbol_overload_list_adl()

void add_symbol_overload_list_adl ( gdb::array_view< type * > arg_types,
const char * func_name,
std::vector< symbol * > * overload_list )

Definition at line 1374 of file cp-support.c.

References add_symbol_overload_list_adl_namespace().

Referenced by find_oload_champ_namespace_loop().

◆ add_symbol_overload_list_adl_namespace()

static void add_symbol_overload_list_adl_namespace ( struct type * type,
const char * func_name,
std::vector< symbol * > * overload_list )
static

◆ add_symbol_overload_list_block()

static void add_symbol_overload_list_block ( const char * name,
const struct block * block,
std::vector< symbol * > * overload_list )
static

◆ add_symbol_overload_list_namespace()

static void add_symbol_overload_list_namespace ( const char * func_name,
const char * the_namespace,
std::vector< symbol * > * overload_list )
static

◆ add_symbol_overload_list_qualified()

static void add_symbol_overload_list_qualified ( const char * func_name,
std::vector< symbol * > * overload_list )
static

◆ add_symbol_overload_list_using()

static void add_symbol_overload_list_using ( const char * func_name,
const char * the_namespace,
std::vector< symbol * > * overload_list )
static

◆ check_cv_qualifiers()

static void check_cv_qualifiers ( struct demangle_component * ret_comp)
static

Definition at line 469 of file cp-support.c.

References d_left.

Referenced by replace_typedefs().

◆ copy_string_to_obstack()

static char * copy_string_to_obstack ( struct obstack * obstack,
const char * string,
long * len )
static

Definition at line 91 of file cp-support.c.

Referenced by inspect_type(), and replace_typedefs_qualified_name().

◆ cp_already_canonical()

static int cp_already_canonical ( const char * string)
static

Definition at line 105 of file cp-support.c.

Referenced by cp_canonicalize_string().

◆ cp_canonicalize_string()

gdb::unique_xmalloc_ptr< char > cp_canonicalize_string ( const char * string)

◆ cp_canonicalize_string_full()

gdb::unique_xmalloc_ptr< char > cp_canonicalize_string_full ( const char * string,
canonicalization_ftype * finder,
void * data )

◆ cp_canonicalize_string_no_typedefs()

gdb::unique_xmalloc_ptr< char > cp_canonicalize_string_no_typedefs ( const char * string)

◆ cp_class_name_from_physname()

char * cp_class_name_from_physname ( const char * physname)

◆ cp_entire_prefix_len()

unsigned int cp_entire_prefix_len ( const char * name)

◆ cp_find_first_component()

unsigned int cp_find_first_component ( const char * name)

◆ cp_find_first_component_aux()

static unsigned int cp_find_first_component_aux ( const char * name,
int permissive )
static

◆ cp_fq_symbol_name_matches()

static bool cp_fq_symbol_name_matches ( const char * symbol_search_name,
const lookup_name_info & lookup_name,
completion_match_result * comp_match_res )
static

◆ cp_func_name()

gdb::unique_xmalloc_ptr< char > cp_func_name ( const char * full_name)

◆ cp_get_symbol_name_matcher()

symbol_name_matcher_ftype * cp_get_symbol_name_matcher ( const lookup_name_info & lookup_name)

◆ cp_lookup_rtti_type()

struct type * cp_lookup_rtti_type ( const char * name,
const struct block * block )

◆ cp_remove_params()

gdb::unique_xmalloc_ptr< char > cp_remove_params ( const char * demangled_name)

◆ cp_remove_params_1()

static gdb::unique_xmalloc_ptr< char > cp_remove_params_1 ( const char * demangled_name,
bool require_params )
static

Definition at line 908 of file cp-support.c.

References cp_comp_to_string(), cp_demangled_name_to_comp(), and d_left.

Referenced by cp_remove_params(), and cp_remove_params_if_any().

◆ cp_remove_params_if_any()

gdb::unique_xmalloc_ptr< char > cp_remove_params_if_any ( const char * demangled_name,
bool completion_mode )

Definition at line 967 of file cp-support.c.

References cp_remove_params_1().

Referenced by demangle_for_lookup_info::demangle_for_lookup_info().

◆ cp_search_name_hash()

unsigned int cp_search_name_hash ( const char * search_name)

◆ cp_symbol_name_matches()

static bool cp_symbol_name_matches ( const char * symbol_search_name,
const lookup_name_info & lookup_name,
completion_match_result * comp_match_res )
static

◆ cp_symbol_name_matches_1()

static bool cp_symbol_name_matches_1 ( const char * symbol_search_name,
const char * lookup_name,
size_t lookup_name_len,
strncmp_iw_mode mode,
completion_match_result * comp_match_res )
static

◆ demangled_name_complaint()

static void demangled_name_complaint ( const char * name)
static

Definition at line 1176 of file cp-support.c.

References complaint, and name.

Referenced by cp_find_first_component_aux().

◆ find_toplevel_char()

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

◆ first_component_command()

static void first_component_command ( const char * arg,
int from_tty )
static

Definition at line 2221 of file cp-support.c.

References cp_find_first_component(), gdb_printf(), and prefix.

◆ gdb_cplus_demangle_print()

char * gdb_cplus_demangle_print ( int options,
struct demangle_component * tree,
int estimated_length,
size_t * p_allocated_size )

Definition at line 1682 of file cp-support.c.

Referenced by cp_comp_to_string().

◆ gdb_cplus_demangle_v3_components()

static struct demangle_component * gdb_cplus_demangle_v3_components ( const char * mangled,
int options,
void ** mem )
static

Definition at line 1695 of file cp-support.c.

Referenced by mangled_name_to_comp().

◆ gdb_demangle()

gdb::unique_xmalloc_ptr< char > gdb_demangle ( const char * name,
int options )

◆ info_vtbl_command()

static void info_vtbl_command ( const char * arg,
int from_tty )
static

Definition at line 2241 of file cp-support.c.

References cplus_print_vtable(), parse_and_eval(), and value.

◆ inspect_type()

static int inspect_type ( struct demangle_parse_info * info,
struct demangle_component * ret_comp,
canonicalization_ftype * finder,
void * data )
static

◆ make_symbol_overload_list()

struct std::vector< symbol * > make_symbol_overload_list ( const char * func_name,
const char * the_namespace )

◆ mangled_name_to_comp()

static std::unique_ptr< demangle_parse_info > mangled_name_to_comp ( const char * mangled_name,
int options,
void ** memory,
gdb::unique_xmalloc_ptr< char > * demangled_p )
static

◆ method_name_from_physname()

char * method_name_from_physname ( const char * physname)

◆ overload_list_add_symbol()

static void overload_list_add_symbol ( struct symbol * sym,
const char * oload_name,
std::vector< symbol * > * overload_list )
static

◆ replace_typedefs()

static void replace_typedefs ( struct demangle_parse_info * info,
struct demangle_component * ret_comp,
canonicalization_ftype * finder,
void * data )
static

◆ replace_typedefs_qualified_name()

static void replace_typedefs_qualified_name ( struct demangle_parse_info * info,
struct demangle_component * ret_comp,
canonicalization_ftype * finder,
void * data )
static

◆ replace_typedefs_template()

static bool replace_typedefs_template ( struct demangle_parse_info * info,
string_file & buf,
struct demangle_component * tmpl,
struct demangle_component * repl,
canonicalization_ftype * finder,
void * data )
static

◆ unqualified_name_from_comp()

static struct demangle_component * unqualified_name_from_comp ( struct demangle_component * comp)
static

Definition at line 798 of file cp-support.c.

References d_left, and d_right.

Referenced by cp_func_name(), and method_name_from_physname().

Variable Documentation

◆ maint_cplus_cmd_list

struct cmd_list_element* maint_cplus_cmd_list = NULL

Definition at line 73 of file cp-support.c.