GDB (xrefs)

Functions
compile-c-support.c File Reference
`#include "defs.h"`
`#include "compile-internal.h"`
`#include "compile.h"`
`#include "gdb-dlfcn.h"`
`#include "c-lang.h"`
`#include "macrotab.h"`
`#include "macroscope.h"`
`#include "regcache.h"`
`#include "common/function-view.h"`
`#include "common/preprocessor.h"`

Go to the source code of this file.

## Functions
const char * | c_get_mode_for_size (int size)
std::string | c_get_range_decl_name (const struct dynamic_prop *prop)
static gcc_c_fe_context_function * | load_libcc (void)
struct compile_instance * | c_get_compile_context (void)
static void | print_one_macro (const char *name, const struct macro_definition *macro, struct macro_source_file *source, int line, ui_file *file)
static void | write_macro_definitions (const struct block *block, CORE_ADDR pc, struct ui_file *file)
static void | add_code_header (enum compile_i_scope_types type, struct ui_file *buf)
static void | add_code_footer (enum compile_i_scope_types type, struct ui_file *buf)
static void | generate_register_struct (struct ui_file *stream, struct gdbarch *gdbarch, const unsigned char *registers_used)
std::string | c_compute_program (struct compile_instance *inst, const char *input, struct gdbarch *gdbarch, const struct block *expr_block, CORE_ADDR expr_pc)

## Function Documentation

## ◆ add_code_footer()

static void add_code_footer | ( | enum compile_i_scope_types | type,
|  | struct ui_file * | buf
| ) |  |
| static

Definition at line 231 of file compile-c-support.c.

References _, COMPILE_I_PRINT_ADDRESS_SCOPE, COMPILE_I_PRINT_VALUE_SCOPE, COMPILE_I_RAW_SCOPE, COMPILE_I_SIMPLE_SCOPE, fputs_unfiltered(), and gdb_assert_not_reached.

Referenced by c_compute_program().

## ◆ add_code_header()

static void add_code_header | ( | enum compile_i_scope_types | type,
|  | struct ui_file * | buf
| ) |  |
| static

Definition at line 187 of file compile-c-support.c.

References _, COMPILE_I_PRINT_ADDRESS_SCOPE, COMPILE_I_PRINT_OUT_ARG, COMPILE_I_PRINT_OUT_ARG_TYPE, COMPILE_I_PRINT_VALUE_SCOPE, COMPILE_I_RAW_SCOPE, COMPILE_I_SIMPLE_REGISTER_ARG_NAME, COMPILE_I_SIMPLE_REGISTER_STRUCT_TAG, COMPILE_I_SIMPLE_SCOPE, fputs_unfiltered(), and gdb_assert_not_reached.

Referenced by c_compute_program().

## ◆ c_compute_program()

std::string c_compute_program | ( | struct compile_instance * | inst,
|  | const char * | input,
|  | struct gdbarch * | gdbarch,
|  | const struct block * | expr_block,
|  | CORE_ADDR | expr_pc
| ) |  |

Definition at line 336 of file compile-c-support.c.

References add_code_footer(), add_code_header(), c_get_mode_for_size(), string_file::c_str(), COMPILE_I_EXPR_PTR_TYPE, COMPILE_I_EXPR_VAL, COMPILE_I_PRINT_ADDRESS_SCOPE, COMPILE_I_PRINT_OUT_ARG, COMPILE_I_PRINT_VALUE_SCOPE, COMPILE_I_RAW_SCOPE, COMPILE_I_SIMPLE_SCOPE, gdb_assert, generate_c_for_variable_locations(), generate_register_struct(), make_cleanup(), ui_file::printf(), ui_file::puts(), compile_instance::scope, string_file::size(), string_file::string(), string_file::write(), write_macro_definitions(), and xfree().

## ◆ c_get_compile_context()

struct compile_instance* c_get_compile_context | ( | void |  | ) |

Definition at line 99 of file compile-c-support.c.

References _, error(), func, gdb_assert, load_libcc(), and new_compile_instance().

## ◆ c_get_mode_for_size()

const char* c_get_mode_for_size | ( | int | size | ) |

Definition at line 34 of file compile-c-support.c.

References _, internal_error(), and size.

Referenced by c_compute_program(), do_compile_dwarf_expr_to_c(), and generate_register_struct().

## ◆ c_get_range_decl_name()

std::string c_get_range_decl_name | ( | const struct dynamic_prop * | prop | ) |

Definition at line 62 of file compile-c-support.c.

References host_address_to_string, and string_printf().

Referenced by convert_array(), and generate_vla_size().

## ◆ generate_register_struct()

static void generate_register_struct | ( | struct ui_file * | stream,
|  | struct gdbarch * | gdbarch,
|  | const unsigned char * | registers_used
| ) |  |
| static

Definition at line 251 of file compile-c-support.c.

References c_get_mode_for_size(), check_typedef(), COMPILE_I_SIMPLE_REGISTER_DUMMY, COMPILE_I_SIMPLE_REGISTER_STRUCT_TAG, compile_register_name_mangled(), fprintf_filtered(), fprintf_unfiltered(), fputs_unfiltered(), gdbarch_num_regs(), register_type(), string, TYPE_CODE, TYPE_CODE_INT, TYPE_CODE_PTR, TYPE_LENGTH, and TYPE_UNSIGNED.

Referenced by c_compute_program().

## ◆ load_libcc()

static gcc_c_fe_context_function* load_libcc | ( | void |  | ) |
| static

Definition at line 74 of file compile-c-support.c.

References _, error(), func, gdb_dlopen(), gdb_dlsym(), and STRINGIFY.

Referenced by c_get_compile_context().

## ◆ print_one_macro()

static void print_one_macro | ( | const char * | name,
|  | const struct macro_definition * | macro,
|  | struct macro_source_file * | source,
|  | int | line,
|  | ui_file * | file
| ) |  |
| static

Definition at line 124 of file compile-c-support.c.

References macro_definition::argc, macro_definition::argv, fprintf_filtered(), fputs_filtered(), macro_definition::kind, macro_function_like, name, and macro_definition::replacement.

## ◆ write_macro_definitions()

static void write_macro_definitions | ( | const struct block * | block,
|  | CORE_ADDR | pc,
|  | struct ui_file * | file
| ) |  |
| static

Definition at line 157 of file compile-c-support.c.

References default_macro_scope(), macro_scope::file, find_pc_line(), macro_scope::line, macro_for_each_in_scope(), name, sal_macro_scope(), macro_source_file::table, and user_macro_scope().

Referenced by c_compute_program().