GCC Middle and Back End API Reference
gcc_debug_hooks Struct Reference

#include <debug.h>

Data Fields

void(*) init (const char *main_filename)
void(*) finish (const char *main_filename)
void(*) early_finish (const char *main_filename)
void(*) assembly_start (void)
void(*) define (unsigned int line, const char *text)
void(*) undef (unsigned int line, const char *macro)
void(*) start_source_file (unsigned int line, const char *file)
void(*) end_source_file (unsigned int line)
void(*) begin_block (unsigned int line, unsigned int n, tree block)
void(*) end_block (unsigned int line, unsigned int n)
bool(*) ignore_block (const_tree)
void(*) source_line (unsigned int line, unsigned int column, const char *file, int discriminator, bool is_stmt)
void(*) set_ignored_loc (unsigned int line, unsigned int column, const char *file)
void(*) begin_prologue (unsigned int line, unsigned int column, const char *file)
void(*) end_prologue (unsigned int line, const char *file)
void(*) begin_epilogue (unsigned int line, const char *file)
void(*) end_epilogue (unsigned int line, const char *file)
void(*) begin_function (tree decl)
void(*) end_function (unsigned int line)
void(*) register_main_translation_unit (tree)
void(*) function_decl (tree decl)
void(*) early_global_decl (tree decl)
void(*) late_global_decl (tree decl)
void(*) type_decl (tree decl, int local)
void(*) imported_module_or_decl (tree decl, tree name, tree context, bool child, bool implicit)
bool(*) die_ref_for_decl (tree, const char **, unsigned HOST_WIDE_INT *)
void(*) register_external_die (tree, const char *, unsigned HOST_WIDE_INT)
void(*) deferred_inline_function (tree decl)
void(*) outlining_inline_function (tree decl)
void(*) label (rtx_code_label *)
void(*) handle_pch (unsigned int)
void(*) var_location (rtx_insn *)
void(*) inline_entry (tree block)
void(*) size_function (tree decl)
void(*) switch_text_section (void)
void(*) set_name (tree, tree)
int start_end_main_source_file
int tree_type_symtab_field

Detailed Description

Debug hooks for GCC.
Copyright (C) 2001-2026 Free Software Foundation, Inc.

This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 3, or (at your option) any
later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
This structure contains hooks for the debug information output
functions, accessed through the global instance debug_hooks set in
toplev.cc according to command line options.   
WARNING: Do not add new debug hook targets - DWARF will be the only
way to speak debug to the middle-end once we are able to get rid of
the remaining targets.  If you need alternate output formats instead
generate them off the DWARF representation.   

Field Documentation

◆ assembly_start

void(*) gcc_debug_hooks::assembly_start(void)

◆ begin_block

void(*) gcc_debug_hooks::begin_block(unsigned int line, unsigned int n, tree block)

Referenced by final_scan_insn_1().

◆ begin_epilogue

void(*) gcc_debug_hooks::begin_epilogue(unsigned int line, const char *file)

Referenced by final_scan_insn_1().

◆ begin_function

void(*) gcc_debug_hooks::begin_function(tree decl)

Referenced by assemble_start_function().

◆ begin_prologue

void(*) gcc_debug_hooks::begin_prologue(unsigned int line, unsigned int column, const char *file)

Referenced by final_start_function_1().

◆ deferred_inline_function

void(*) gcc_debug_hooks::deferred_inline_function(tree decl)

◆ define

void(*) gcc_debug_hooks::define(unsigned int line, const char *text)

Referenced by dump_go_spec_init(), and go_define().

◆ die_ref_for_decl

bool(*) gcc_debug_hooks::die_ref_for_decl(tree, const char **, unsigned HOST_WIDE_INT *)

Referenced by lto_write_tree_1().

◆ early_finish

void(*) gcc_debug_hooks::early_finish(const char *main_filename)

◆ early_global_decl

void(*) gcc_debug_hooks::early_global_decl(tree decl)

◆ end_block

void(*) gcc_debug_hooks::end_block(unsigned int line, unsigned int n)

Referenced by final_scan_insn_1().

◆ end_epilogue

void(*) gcc_debug_hooks::end_epilogue(unsigned int line, const char *file)

Referenced by final_end_function().

◆ end_function

void(*) gcc_debug_hooks::end_function(unsigned int line)

Referenced by final_end_function().

◆ end_prologue

void(*) gcc_debug_hooks::end_prologue(unsigned int line, const char *file)

Referenced by final_scan_insn_1().

◆ end_source_file

void(*) gcc_debug_hooks::end_source_file(unsigned int line)

◆ finish

void(*) gcc_debug_hooks::finish(const char *main_filename)

◆ function_decl

void(*) gcc_debug_hooks::function_decl(tree decl)

◆ handle_pch

void(*) gcc_debug_hooks::handle_pch(unsigned int)

◆ ignore_block

bool(*) gcc_debug_hooks::ignore_block(const_tree)

Referenced by mark_scope_block_unused().

◆ imported_module_or_decl

void(*) gcc_debug_hooks::imported_module_or_decl(tree decl, tree name, tree context, bool child, bool implicit)

◆ init

void(*) gcc_debug_hooks::init(const char *main_filename)

Referenced by lang_dependent_init().

◆ inline_entry

void(*) gcc_debug_hooks::inline_entry(tree block)

Referenced by final_scan_insn_1().

◆ label

void(*) gcc_debug_hooks::label(rtx_code_label *)

Referenced by final_scan_insn_1().

◆ late_global_decl

◆ outlining_inline_function

void(*) gcc_debug_hooks::outlining_inline_function(tree decl)

◆ register_external_die

void(*) gcc_debug_hooks::register_external_die(tree, const char *, unsigned HOST_WIDE_INT)

Referenced by lto_input_tree().

◆ register_main_translation_unit

void(*) gcc_debug_hooks::register_main_translation_unit(tree)

◆ set_ignored_loc

void(*) gcc_debug_hooks::set_ignored_loc(unsigned int line, unsigned int column, const char *file)

◆ set_name

void(*) gcc_debug_hooks::set_name(tree, tree)

◆ size_function

void(*) gcc_debug_hooks::size_function(tree decl)

Referenced by finalize_size_functions().

◆ source_line

void(*) gcc_debug_hooks::source_line(unsigned int line, unsigned int column, const char *file, int discriminator, bool is_stmt)

◆ start_end_main_source_file

int gcc_debug_hooks::start_end_main_source_file

◆ start_source_file

void(*) gcc_debug_hooks::start_source_file(unsigned int line, const char *file)

◆ switch_text_section

void(*) gcc_debug_hooks::switch_text_section(void)

Referenced by final_scan_insn_1().

◆ tree_type_symtab_field

int gcc_debug_hooks::tree_type_symtab_field

◆ type_decl

void(*) gcc_debug_hooks::type_decl(tree decl, int local)

◆ undef

void(*) gcc_debug_hooks::undef(unsigned int line, const char *macro)

Referenced by dump_go_spec_init(), and go_undef().

◆ var_location

void(*) gcc_debug_hooks::var_location(rtx_insn *)

Referenced by final_scan_insn_1().


The documentation for this struct was generated from the following file: