/*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
/*
Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved.
under the terms of version 2.1 of the GNU Lesser General Public License
as published by the Free Software Foundation.
This program is distributed in the hope that it would be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Further, this software is distributed without any warranty that it is
free of the rightful claim of any third person regarding infringement
or the like. Any license provided herein, whether implied or
otherwise, applies only to this software file. Patent licenses, if
any, provided herein do not apply to combinations of this program with
other software, or any other product whatsoever.
You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
USA.
Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky,
Mountain View, CA 94043, or:
For further information regarding this notice, see:
*/
#ifndef _LIBDWARF_H
#define _LIBDWARF_H
#ifdef __cplusplus
extern "C" {
#endif
/*
$Revision: 1.71 $ $Date: 2001/05/23 23:34:52 $
For libdwarf producers and consumers
The interface is defined as having 8-byte signed and unsigned
values so it can handle 64-or-32bit target on 64-or-32bit host.
Addr is the native size: it represents pointers on
the host machine (not the target!).
This contains declarations for types and all producer
and consumer functions.
Function declarations are written on a single line each here
so one can use grep to each declaration in its entirety.
The declarations are a little harder to read this way, but...
*/
#if (_MIPS_SZLONG == 64)
/* Special case for MIPS, so -64 (LP64) build gets simple -long-.
Non-MIPS LP64 or ILP64 environments should probably ensure
_MIPS_SZLONG set to 64 everywhere this header is #included.
*/
#else /* 32-bit */
/* This is for ILP32, allowing i/o of 64bit dwarf info.
Also should be fine for LP64 and ILP64 cases.
*/
#endif
/* uninterpreted block of data
*/
typedef struct {
} Dwarf_Block;
/* location record
*/
typedef struct {
} Dwarf_Loc;
/* location description
*/
typedef struct {
/* Frame description instructions expanded.
*/
typedef struct {
/* DW_REG_TABLE_SIZE must reflect the number of registers
*(DW_FRAME_LAST_REG_NUM) as defined in dwarf.h
*/
typedef struct {
struct {
/* for DW_DLC_SYMBOLIC_RELOCATIONS output to caller
v2, adding drd_length: some relocations are 4 and
some 8 bytes (pointers are 8, section offsets 4) in
some dwarf environments. (MIPS relocations are all one
size in any given ABI.) Changing drd_type to an unsigned char
to keep struct size down.
*/
enum Dwarf_Rel_Type {
for .word end - begin
case */
};
struct Dwarf_Relocation_Data_s {
to keep size small in struct */
of data being relocated. 4 for 32bit.
8 for 64bit data */
};
/* Opaque types for Consumer Library. */
/* Opaque types for Producer Library. */
/* error handler function
*/
/*
Dwarf_dealloc() alloc_type arguments.
Argument points to:
*/
/* The augmenter string for CIE */
/* dwarf_init() access arguments
*/
/* dwarf_init() access flag modifiers
*/
/* dwarf_init() access flag modifiers
*/
/* dwarf_pcline() slide arguments
*/
/* libdwarf error numbers
*/
/* It is not an allowed size (64 or 32) */
/* Error codes defined by the current Libdwarf Implementation. */
/* DW_DLE_LAST MUST EQUAL LAST ERROR NUMBER */
/* taken as meaning 'undefined value', this is not
a column or register number.
Only present at libdwarf runtime. Never on disk.
DW_FRAME_* Values present on disk are in dwarf.h
*/
/* taken as meaning 'same value' as caller had, not a column
or register number
Only present at libdwarf runtime. Never on disk.
DW_FRAME_* Values present on disk are in dwarf.h
*/
/* error return values
*/
/* for functions returning target address */
/* for functions returning count */
/* for functions returning offset */
/* standard return values for functions */
#define DW_DLV_OK 0
/* Special values for offset_into_exception_table field of dwarf fde's. */
/* The following value indicates that there is no Exception table offset
associated with a dwarf frame. */
/* The following value indicates that the producer was unable to analyse the
source file to generate Exception tables for this function. */
/*===========================================================================*/
/* Dwarf consumer interface initialization and termination operations */
/* non-elf initialization */
int dwarf_init(int /*fd*/,
Dwarf_Unsigned /*access*/,
Dwarf_Handler /*errhand*/,
Dwarf_Ptr /*errarg*/,
Dwarf_Debug * /*dbg*/,
Dwarf_Error* /*error*/);
/* elf intialization */
Dwarf_Unsigned /*access*/,
Dwarf_Handler /*errhand*/,
Dwarf_Ptr /*errarg*/,
Dwarf_Debug * /*dbg*/,
Dwarf_Error* /*error*/);
/* Undocumented function for memory allocator. */
Elf ** /*return_elfptr*/,
Dwarf_Error* /*error*/);
/* die traversal operations */
Dwarf_Unsigned* /*cu_header_length*/,
Dwarf_Half* /*version_stamp*/,
Dwarf_Off* /*abbrev_offset*/,
Dwarf_Half* /*address_size*/,
Dwarf_Unsigned* /*next_cu_header_offset*/,
Dwarf_Error* /*error*/);
Dwarf_Die /*die*/,
Dwarf_Die* /*return_siblingdie*/,
Dwarf_Error* /*error*/);
Dwarf_Die* /*return_childdie*/,
Dwarf_Error* /*error*/);
/* finding die given offset */
Dwarf_Off /*offset*/,
Dwarf_Die* /*return_die*/,
Dwarf_Error* /*error*/);
/* higher level functions (Unimplemented) */
Dwarf_Addr /*pc*/,
Dwarf_Die* /*return_die*/,
Dwarf_Error* /*error*/);
/* Unimplemented */
Dwarf_Addr /*pc*/,
Dwarf_Die* /*return_die*/,
Dwarf_Error* /*error*/);
/* Unimplemented */
Dwarf_Addr /*pc*/,
Dwarf_Die* /*return_die*/,
Dwarf_Error* /*error*/);
/* operations on DIEs */
Dwarf_Half* /*return_tag*/,
Dwarf_Error* /*error*/);
/* utility? */
Dwarf_Off* /*return_offset*/,
Dwarf_Error* /*error*/);
Dwarf_Off* /*return_offset*/,
Dwarf_Error* /*error*/);
Dwarf_Half /*attr*/,
Dwarf_Attribute * /*returned_attr*/,
Dwarf_Error* /*error*/);
char ** /*diename*/,
Dwarf_Error* /*error*/);
/* convenience functions, alternative to using dwarf_attrlist() */
Dwarf_Half /*attr*/,
Dwarf_Bool * /*returned_bool*/,
Dwarf_Error* /*error*/);
Dwarf_Locdesc** /*llbuf*/,
Dwarf_Signed * /*locCount*/,
Dwarf_Error* /*error*/);
/* Unimplemented */
Dwarf_Locdesc ** /*returned_locdesc*/,
Dwarf_Error* /*error*/);
/* Unimplemented */
Dwarf_Signed * /*returned_count*/,
Dwarf_Error* /*error*/);
/* Unimplemented */
Dwarf_Unsigned /*ssndx*/,
Dwarf_Die * /*returned_die*/,
Dwarf_Error* /*error*/);
Dwarf_Addr * /*returned_addr*/,
Dwarf_Error* /*error*/);
Dwarf_Addr * /*returned_addr*/,
Dwarf_Error* /*error*/);
Dwarf_Unsigned * /*returned_size*/,
Dwarf_Error* /*error*/);
/* Unimplemented */
Dwarf_Bool * /*returned_bool*/,
Dwarf_Error* /*error*/);
Dwarf_Unsigned * /*returned_size*/,
Dwarf_Error* /*error*/);
Dwarf_Unsigned * /*returned_offset*/,
Dwarf_Error* /*error*/);
Dwarf_Unsigned * /*returned_lang*/,
Dwarf_Error* /*error*/);
Dwarf_Unsigned * /*returned_order*/,
Dwarf_Error* /*error*/);
/* end of convenience function list */
/* this is the main interface to attributes of a DIE */
Dwarf_Attribute** /*attrbuf*/,
Dwarf_Signed * /*attrcount*/,
Dwarf_Error* /*error*/);
/* query operations for attributes */
Dwarf_Half /*form*/,
Dwarf_Bool * /*returned_bool*/,
Dwarf_Error* /*error*/);
Dwarf_Half * /*returned_form*/,
Dwarf_Error* /*error*/);
Dwarf_Half * /*returned_attr_num*/,
Dwarf_Error* /*error*/);
/*
The following are concerned with the Primary Interface: getting
the actual data values. One function per 'kind' of FORM.
*/
/*dwarf_formref returns, thru return_offset, a CU-relative offset
** and does not allow DW_FORM_ref_addr*/
Dwarf_Off* /*return_offset*/,
Dwarf_Error* /*error*/);
/*dwarf_global_formref returns, thru return_offset,
a debug_info-relative offset and does allow all reference forms*/
Dwarf_Off* /*return_offset*/,
Dwarf_Error* /*error*/);
Dwarf_Addr * /*returned_addr*/,
Dwarf_Error* /*error*/);
Dwarf_Bool * /*returned_bool*/,
Dwarf_Error* /*error*/);
Dwarf_Unsigned * /*returned_val*/,
Dwarf_Error* /*error*/);
Dwarf_Signed * /*returned_val*/,
Dwarf_Error* /*error*/);
Dwarf_Block ** /*returned_block*/,
Dwarf_Error* /*error*/);
char ** /*returned_string*/,
Dwarf_Error* /*error*/);
/* end attribute query operations. */
/* line number operations */
/* dwarf_srclines is the normal interface */
Dwarf_Line** /*linebuf*/,
Dwarf_Signed * /*linecount*/,
Dwarf_Error* /*error*/);
char*** /*srcfiles*/,
Dwarf_Signed * /*filecount*/,
Dwarf_Error* /*error*/);
/* Unimplemented. */
Dwarf_Line * /*returned_line*/,
Dwarf_Error * /*error*/);
Dwarf_Bool * /*returned_bool*/,
Dwarf_Error* /*error*/);
Dwarf_Bool * /*returned_bool*/,
Dwarf_Error* /*error*/);
Dwarf_Unsigned * /*returned_lineno*/,
Dwarf_Error* /*error*/);
Dwarf_Addr * /*returned_addr*/,
Dwarf_Error* /*error*/);
Dwarf_Signed * /*returned_lineoffset*/,
Dwarf_Error* /*error*/);
char ** /*returned_name*/,
Dwarf_Error* /*error*/);
Dwarf_Bool * /*returned_bool*/,
Dwarf_Error* /*error*/);
/* tertiary interface to line info */
/* Unimplemented */
Dwarf_Addr /*pc*/,
Dwarf_Line** /*linebuf*/,
Dwarf_Signed * /*linecount*/,
Dwarf_Signed /*slide*/,
Dwarf_Error* /*error*/);
/* end line number operations */
/* global name space operations (.debug_pubnames access) */
Dwarf_Global** /*globals*/,
Dwarf_Signed * /*number_of_globals*/,
Dwarf_Error* /*error*/);
char ** /*returned_name*/,
Dwarf_Error* /*error*/);
Dwarf_Off* /*return_offset*/,
Dwarf_Error * /*error*/);
Dwarf_Debug /*dbg*/,
Dwarf_Off /*in_cu_header_offset*/,
Dwarf_Off * /*out_cu_die_offset*/,
Dwarf_Error * /*err*/);
#ifdef __sgi /* pragma is sgi MIPS only */
#endif
Dwarf_Off* /*return_offset*/,
Dwarf_Error* /*error*/);
char ** /*returned_name*/,
Dwarf_Off* /*die_offset*/,
Dwarf_Off* /*cu_offset*/,
Dwarf_Error* /*error*/);
/* Static function name operations. */
Dwarf_Func** /*funcs*/,
Dwarf_Signed * /*number_of_funcs*/,
Dwarf_Error* /*error*/);
char ** /*returned_name*/,
Dwarf_Error* /*error*/);
Dwarf_Off* /*return_offset*/,
Dwarf_Error* /*error*/);
Dwarf_Off* /*return_offset*/,
Dwarf_Error* /*error*/);
char ** /*returned_name*/,
Dwarf_Off* /*die_offset*/,
Dwarf_Off* /*cu_offset*/,
Dwarf_Error* /*error*/);
/* User-defined type name operations. */
Dwarf_Type** /*types*/,
Dwarf_Signed * /*number_of_types*/,
Dwarf_Error* /*error*/);
char ** /*returned_name*/,
Dwarf_Error* /*error*/);
Dwarf_Off* /*return_offset*/,
Dwarf_Error* /*error*/);
Dwarf_Off* /*return_offset*/,
Dwarf_Error* /*error*/);
char ** /*returned_name*/,
Dwarf_Off* /*die_offset*/,
Dwarf_Off* /*cu_offset*/,
Dwarf_Error* /*error*/);
/* File-scope static variable name operations. */
Dwarf_Var** /*vars*/,
Dwarf_Signed * /*number_of_vars*/,
Dwarf_Error* /*error*/);
char ** /*returned_name*/,
Dwarf_Error* /*error*/);
Dwarf_Off* /*return_offset*/,
Dwarf_Error* /*error*/);
Dwarf_Off* /*return_offset*/,
Dwarf_Error* /*error*/);
char ** /*returned_name*/,
Dwarf_Off* /*die_offset*/,
Dwarf_Off* /*cu_offset*/,
Dwarf_Error* /*error*/);
/* weak name operations. */
Dwarf_Weak** /*weaks*/,
Dwarf_Signed * /*number_of_weaks*/,
Dwarf_Error* /*error*/);
char ** /*returned_name*/,
Dwarf_Error* /*error*/);
Dwarf_Off* /*return_offset*/,
Dwarf_Error* /*error*/);
Dwarf_Off* /*return_offset*/,
Dwarf_Error* /*error*/);
char ** /*returned_name*/,
Dwarf_Off* /*die_offset*/,
Dwarf_Off* /*cu_offset*/,
Dwarf_Error* /*error*/);
/* location list section operation. (.debug_loc access) */
/* Unimplemented. */
Dwarf_Unsigned /*offset*/,
Dwarf_Addr* /*hipc*/,
Dwarf_Addr* /*lopc*/,
Dwarf_Ptr* /*data*/,
Dwarf_Unsigned* /*entry_len*/,
Dwarf_Unsigned* /*next_entry*/,
Dwarf_Error* /*error*/);
/* abbreviation section operations */
Dwarf_Unsigned /*offset*/,
Dwarf_Abbrev * /*returned_abbrev*/,
Dwarf_Unsigned* /*length*/,
Dwarf_Unsigned* /*attr_count*/,
Dwarf_Error* /*error*/);
Dwarf_Half* /*return_tag_number*/,
Dwarf_Error* /*error*/);
Dwarf_Unsigned* /*return_code_number*/,
Dwarf_Error* /*error*/);
Dwarf_Signed* /*return_flag*/,
Dwarf_Error* /*error*/);
Dwarf_Signed /*index*/,
Dwarf_Half * /*returned_attr_num*/,
Dwarf_Signed* /*form*/,
Dwarf_Off* /*offset*/,
Dwarf_Error* /*error*/);
/* consumer string section operation */
Dwarf_Off /*offset*/,
char** /*string*/,
Dwarf_Signed * /*strlen_of_string*/,
Dwarf_Error* /*error*/);
/* Consumer op on gnu .eh_frame info */
Dwarf_Debug /*dbg*/,
Dwarf_Cie ** /*cie_data*/,
Dwarf_Signed * /*cie_element_count*/,
Dwarf_Fde ** /*fde_data*/,
Dwarf_Signed * /*fde_element_count*/,
Dwarf_Error * /*error*/);
/* consumer operations on frame info: .debug_frame */
Dwarf_Cie** /*cie_data*/,
Dwarf_Signed* /*cie_element_count*/,
Dwarf_Fde** /*fde_data*/,
Dwarf_Signed* /*fde_element_count*/,
Dwarf_Error* /*error*/);
Dwarf_Addr* /*low_pc*/,
Dwarf_Unsigned* /*func_length*/,
Dwarf_Ptr* /*fde_bytes*/,
Dwarf_Unsigned* /*fde_byte_length*/,
Dwarf_Off* /*cie_offset*/,
Dwarf_Signed* /*cie_index*/,
Dwarf_Off* /*fde_offset*/,
Dwarf_Error* /*error*/);
Dwarf_Signed* /* offset_into_exception_tables */,
Dwarf_Error* /*error*/);
Dwarf_Cie * /*cie_returned*/,
Dwarf_Error* /*error*/);
Dwarf_Unsigned * /*bytes_in_cie*/,
Dwarf_Small* /*version*/,
char ** /*augmenter*/,
Dwarf_Unsigned* /*code_alignment_factor*/,
Dwarf_Signed* /*data_alignment_factor*/,
Dwarf_Half* /*return_address_register_rule*/,
Dwarf_Ptr* /*initial_instructions*/,
Dwarf_Unsigned* /*initial_instructions_length*/,
Dwarf_Error* /*error*/);
Dwarf_Error * /*error*/);
Dwarf_Addr /*pc_requested*/,
Dwarf_Regtable* /*reg_table*/,
Dwarf_Addr* /*row_pc*/,
Dwarf_Error* /*error*/);
Dwarf_Half /*table_column*/,
Dwarf_Addr /*pc_requested*/,
Dwarf_Signed* /*offset_relevant*/,
Dwarf_Signed* /*register*/,
Dwarf_Signed* /*offset*/,
Dwarf_Addr* /*row_pc*/,
Dwarf_Error* /*error*/);
Dwarf_Die /*subr_die */,
Dwarf_Fde * /*returned_fde*/,
Dwarf_Error* /*error*/);
Dwarf_Unsigned /*fde_index*/,
Dwarf_Fde * /*returned_fde*/,
Dwarf_Error* /*error*/);
Dwarf_Addr /*pc_of_interest*/,
Dwarf_Fde * /*returned_fde*/,
Dwarf_Addr* /*lopc*/,
Dwarf_Addr* /*hipc*/,
Dwarf_Error* /*error*/);
Dwarf_Ptr /*instruction*/,
Dwarf_Unsigned /*i_length*/,
Dwarf_Frame_Op** /*returned_op_list*/,
Dwarf_Signed* /*op_count*/,
Dwarf_Error* /*error*/);
/* Operations on .debug_aranges. */
Dwarf_Arange** /*aranges*/,
Dwarf_Signed * /*arange_count*/,
Dwarf_Error* /*error*/);
int dwarf_get_arange(
Dwarf_Arange* /*aranges*/,
Dwarf_Unsigned /*arange_count*/,
Dwarf_Addr /*address*/,
Dwarf_Arange * /*returned_arange*/,
Dwarf_Error* /*error*/);
Dwarf_Arange /*arange*/,
Dwarf_Off* /*return_offset*/,
Dwarf_Error* /*error*/);
Dwarf_Arange /*arange*/,
Dwarf_Off* /*return_cu_header_offset*/,
Dwarf_Error* /*error*/);
#ifdef __sgi /* pragma is sgi MIPS only */
#endif
Dwarf_Arange /*arange*/,
Dwarf_Addr* /*start*/,
Dwarf_Unsigned* /*length*/,
Dwarf_Off* /*cu_die_offset*/,
Dwarf_Error* /*error*/);
/* consumer .debug_macinfo information interface.
*/
struct Dwarf_Macro_Details_s {
of this macro info */
applicable and vend_def # if
vendor_extension op
*/
applies to define undef start_file
*/
string from vendor ext
*/
};
/* _dwarf_print_lines is for use by dwarfdump: it prints
line info to stdout.
*/
/* _dwarf_ld_sort_lines is for use solely by ld for
rearranging lines in .debug_line in a .o created with a text
section per function.
-OPT:procedure_reorder=ON
where ld-cord (cord(1)ing by ld,
not by cord(1)) may have changed the function order.
*/
int _dwarf_ld_sort_lines(
void * orig_buffer,
unsigned long buffer_len,
int is_64_bit,
int *any_change,
int * err_code);
/* Used by dwarfdump -v to print offsets, for debugging
dwarf info
*/
Dwarf_Error *err);
/* Used by dwarfdump -v to print offsets, for debugging
dwarf info
*/
Dwarf_Error *err);
char * /*requested_macro_name*/,
Dwarf_Addr /*pc_of_request*/,
char ** /*returned_macro_value*/,
Dwarf_Error * /*error*/);
Dwarf_Addr /*pc_of_request*/,
Dwarf_Signed * /*returned_count*/,
char *** /*returned_pointers_to_macros*/,
Dwarf_Error * /*error*/);
char *dwarf_find_macro_value_start(char * /*macro_string*/);
Dwarf_Off /*macro_offset*/,
Dwarf_Unsigned /*maximum_count*/,
Dwarf_Signed * /*entry_count*/,
Dwarf_Macro_Details ** /*details*/,
Dwarf_Error * /*err*/);
Dwarf_Half * /*addr_size*/,
Dwarf_Error * /*error*/);
/* utility operations */
/* stringcheck zero is default and means do all
** string length validity checks.
** Call with parameter value 1 to turn off many such checks (and
** increase performance).
** Call with zero for safest running.
** Actual value saved and returned is only 8 bits! Upper bits
** ignored by libdwarf (and zero on return).
** Returns previous value.
*/
int dwarf_set_stringcheck(int /*stringcheck*/);
/* Unimplemented */
/* Unimplemented */
Dwarf_Unsigned /*type*/);
/* DWARF Producer Interface */
typedef int (*Dwarf_Callback_Func)(
char* /*name*/,
int /*size*/,
Dwarf_Unsigned /*type*/,
Dwarf_Unsigned /*flags*/,
Dwarf_Unsigned /*link*/,
Dwarf_Unsigned /*info*/,
int* /*sect name index*/,
int* /*error*/);
Dwarf_Unsigned /*creation_flags*/,
Dwarf_Callback_Func /*func*/,
Dwarf_Handler /*errhand*/,
Dwarf_Ptr /*errarg*/,
Dwarf_Error* /*error*/);
typedef int (*Dwarf_Callback_Func_b)(
char* /*name*/,
int /*size*/,
Dwarf_Unsigned /*type*/,
Dwarf_Unsigned /*flags*/,
Dwarf_Unsigned /*link*/,
Dwarf_Unsigned /*info*/,
Dwarf_Unsigned* /*sect_name_index*/,
int* /*error*/);
Dwarf_Unsigned /*flags*/,
Dwarf_Callback_Func_b /*func*/,
Dwarf_Handler /*errhand*/,
Dwarf_Ptr /*errarg*/,
Dwarf_Error * /*error*/);
Dwarf_Error* /*error*/);
Dwarf_Signed /*dwarf_section*/,
Dwarf_Signed* /*elf_section_index*/,
Dwarf_Unsigned* /*length*/,
Dwarf_Error* /*error*/);
Dwarf_P_Debug /*dbg*/,
Dwarf_Unsigned * /*count_of_relocation_sections*/,
int * /*drd_buffer_version*/,
Dwarf_Error* /*error*/);
Dwarf_P_Debug /*dbg*/,
Dwarf_Signed * /*elf_section_index*/,
Dwarf_Signed * /*elf_section_index_link*/,
Dwarf_Unsigned * /*relocation_buffer_count*/,
Dwarf_Relocation_Data * /*reldata_buffer*/,
Dwarf_Error* /*error*/);
/* v1: no drd_length field, enum explicit */
/* v2: has the drd_length field, enum value in uchar member */
Dwarf_Error* /*error*/);
/* Producer attribute addition functions. */
Dwarf_P_Die /*ownerdie*/,
Dwarf_Half /*attr*/,
Dwarf_Unsigned /*pc_value*/,
Dwarf_Signed /*sym_index*/,
Dwarf_Error* /*error*/);
Dwarf_P_Die /*ownerdie*/,
Dwarf_Half /*attr*/,
Dwarf_Small* /*block_data*/,
Dwarf_Unsigned /*block_len*/,
Dwarf_Error* /*error*/);
Dwarf_P_Die /*ownerdie*/,
Dwarf_Half /*attr*/,
Dwarf_Unsigned /*pc_value*/,
Dwarf_Unsigned /*sym_index*/,
Dwarf_Error* /*error*/);
Dwarf_P_Die /*ownerdie*/,
Dwarf_Half /*attr*/,
Dwarf_Unsigned /*value*/,
Dwarf_Error* /*error*/);
Dwarf_P_Die /*ownerdie*/,
Dwarf_Half /*attr*/,
Dwarf_Signed /*value*/,
Dwarf_Error* /*error*/);
Dwarf_P_Die /*ownerdie*/,
Dwarf_Half /*attr*/,
Dwarf_P_Die /*otherdie*/,
Dwarf_Error* /*error*/);
char* /*string_value*/,
Dwarf_Error* /*error*/);
Dwarf_P_Die /*ownerdie*/,
Dwarf_Half /*attr*/,
Dwarf_P_Expr /*loc_expr*/,
Dwarf_Error* /*error*/);
Dwarf_P_Die /*ownerdie*/,
Dwarf_Half /*attr*/,
char* /*string*/,
Dwarf_Error* /*error*/);
Dwarf_P_Die /*ownerdie*/,
Dwarf_Half /*attr*/,
Dwarf_Small /*flag*/,
Dwarf_Error* /*error*/);
char* /*producer_string*/,
Dwarf_Error* /*error*/);
Dwarf_Signed /*signed_value*/,
Dwarf_Error* /*error*/);
Dwarf_P_Die /*ownerdie*/,
Dwarf_Unsigned /*unsigned_value*/,
Dwarf_Error* /*error*/);
char* /*current_working_directory*/,
Dwarf_Error* /*error*/);
char* /*name*/,
Dwarf_Error* /*error*/);
/* Producer line creation functions (.debug_line) */
char* /*name*/,
Dwarf_Error* /*error*/);
char* /*name*/,
Dwarf_Unsigned /*dir_index*/,
Dwarf_Unsigned /*time_last_modified*/,
Dwarf_Unsigned /*length*/,
Dwarf_Error* /*error*/);
Dwarf_Unsigned /*file_index*/,
Dwarf_Addr /*code_address*/,
Dwarf_Unsigned /*lineno*/,
Dwarf_Signed /*column_number*/,
Dwarf_Bool /*is_source_stmt_begin*/,
Dwarf_Bool /*is_basic_block_begin*/,
Dwarf_Error* /*error*/);
Dwarf_Unsigned /*offset*/,
Dwarf_Unsigned /*symbol_index*/,
Dwarf_Error* /*error*/);
Dwarf_Addr /*end_address*/,
Dwarf_Error* /*error*/);
/* Producer .debug_frame functions */
char* /*augmenter*/,
Dwarf_Small /*code_alignent_factor*/,
Dwarf_Small /*data_alignment_factor*/,
Dwarf_Small /*return_address_reg*/,
Dwarf_Ptr /*initialization_bytes*/,
Dwarf_Unsigned /*init_byte_len*/,
Dwarf_Error* /*error*/);
Dwarf_P_Debug /*dbg*/,
Dwarf_P_Fde /*fde*/,
Dwarf_P_Die /*corresponding subprogram die*/,
Dwarf_Unsigned /*cie_to_use*/,
Dwarf_Unsigned /*virt_addr_of_described_code*/,
Dwarf_Unsigned /*length_of_code*/,
Dwarf_Unsigned /*symbol_index*/,
Dwarf_Error* /*error*/);
Dwarf_P_Debug /*dbg*/,
Dwarf_P_Fde /*fde*/,
Dwarf_P_Die /*die*/,
Dwarf_Unsigned /*cie*/,
Dwarf_Addr /*virt_addr*/,
Dwarf_Unsigned /*code_len*/,
Dwarf_Unsigned /*sym_idx*/,
Dwarf_Unsigned /*sym_idx_of_end*/,
Dwarf_Addr /*offset_from_end_sym*/,
Dwarf_Error* /*error*/);
Dwarf_P_Fde /*fde*/,
Dwarf_P_Die /*die*/,
Dwarf_Unsigned /*cie*/,
Dwarf_Addr /*virt_addr*/,
Dwarf_Unsigned /*code_len*/,
Dwarf_Unsigned /*symidx*/,
Dwarf_Unsigned /* end_symbol */,
Dwarf_Addr /* offset_from_end_symbol */,
Dwarf_Signed /*offset_into_exception_tables*/,
Dwarf_Unsigned /*exception_table_symbol*/,
Dwarf_Error* /*error*/);
Dwarf_P_Fde /*fde*/,
Dwarf_P_Die /*die*/,
Dwarf_Unsigned /*cie*/,
Dwarf_Addr /*virt_addr*/,
Dwarf_Unsigned /*code_len*/,
Dwarf_Unsigned /*symidx*/,
Dwarf_Signed /*offset_into_exception_tables*/,
Dwarf_Unsigned /*exception_table_symbol*/,
Dwarf_Error* /*error*/);
Dwarf_P_Fde /*fde*/,
Dwarf_Small /*op*/,
Dwarf_Unsigned /*val1*/,
Dwarf_Unsigned /*val2*/,
Dwarf_Error* /*error*/);
Dwarf_P_Fde /*fde*/,
Dwarf_Unsigned /*register_number*/,
Dwarf_Signed /*offset*/,
Dwarf_Error* /*error*/);
/* die creation & addition routines */
Dwarf_P_Debug /*dbg*/,
Dwarf_Tag /*tag*/,
Dwarf_P_Die /*parent*/,
Dwarf_P_Die /*child*/,
Dwarf_P_Die /*left */,
Dwarf_P_Die /*right*/,
Dwarf_Error* /*error*/);
Dwarf_P_Debug /*dbg*/,
Dwarf_P_Die /*die*/,
Dwarf_Error* /*error*/);
Dwarf_P_Die /*die*/,
Dwarf_P_Die /*parent*/,
Dwarf_P_Die /*child*/,
Dwarf_P_Die /*left*/,
Dwarf_P_Die /*right*/,
Dwarf_Error* /*error*/);
void *
);
void *
);
void * dwarf_compress_integer_block(
Dwarf_P_Debug, /* dbg */
Dwarf_Bool, /* signed==true (or unsigned) */
Dwarf_Small, /* size of integer units: 8, 16, 32, 64 */
void*, /* data */
Dwarf_Unsigned, /* number of elements */
Dwarf_Unsigned*, /* number of bytes in output block */
Dwarf_Error* /* error */
);
void * dwarf_uncompress_integer_block(
Dwarf_Debug, /* dbg */
Dwarf_Bool, /* signed==true (or unsigned) */
Dwarf_Small, /* size of integer units: 8, 16, 32, 64 */
void*, /* data */
Dwarf_Unsigned, /* number of bytes in input */
Dwarf_Unsigned*, /* number of units in output block */
Dwarf_Error* /* error */
);
/* Operations to create location expressions. */
Dwarf_P_Expr /*expr*/,
Dwarf_Small /*opcode*/,
Dwarf_Unsigned /*val1*/,
Dwarf_Unsigned /*val2*/,
Dwarf_Error* /*error*/);
Dwarf_P_Expr /*expr*/,
Dwarf_Unsigned /*addr*/,
Dwarf_Signed /*sym_index*/,
Dwarf_Error* /*error*/);
Dwarf_P_Expr /*expr*/,
Dwarf_Unsigned /*addr*/,
Dwarf_Unsigned /*sym_index*/,
Dwarf_Error* /*error*/);
Dwarf_P_Expr /*expr*/,
Dwarf_Error* /*error*/);
Dwarf_P_Expr /*expr*/,
Dwarf_Unsigned* /*length*/,
Dwarf_Error* /*error*/);
Dwarf_Addr /*begin_address*/,
Dwarf_Unsigned /*length*/,
Dwarf_Signed /*symbol_index*/,
Dwarf_Error* /*error*/);
Dwarf_P_Debug /*dbg*/,
Dwarf_Addr /*begin_address*/,
Dwarf_Unsigned /*length*/,
Dwarf_Unsigned /*symbol_index*/,
Dwarf_Unsigned /*end_symbol_index*/,
Dwarf_Addr /*offset_from_end_symbol*/,
Dwarf_Error * /*error*/);
Dwarf_P_Debug /*dbg*/,
Dwarf_P_Die /*die*/,
char* /*pubname_name*/,
Dwarf_Error* /*error*/);
Dwarf_P_Debug /*dbg*/,
Dwarf_P_Die /*die*/,
char* /*func_name*/,
Dwarf_Error* /*error*/);
Dwarf_P_Debug /*dbg*/,
Dwarf_P_Die /*die*/,
char* /*type_name*/,
Dwarf_Error* /*error*/);
Dwarf_P_Debug /*dbg*/,
Dwarf_P_Die /*die*/,
char* /*var_name*/,
Dwarf_Error* /*error*/);
Dwarf_P_Debug /*dbg*/,
Dwarf_P_Die /*die*/,
char* /*weak_name*/,
Dwarf_Error* /*error*/);
/* .debug_macinfo producer functions
Functions must be called in right order: the section is output
In the order these are presented.
*/
Dwarf_Unsigned /*line*/,
char * /*macname, with (arglist), no space before (*/,
char * /*macvalue*/,
Dwarf_Error* /*error*/);
Dwarf_Unsigned /*line*/,
char * /*macname, no arglist, of course*/,
Dwarf_Error* /*error*/);
Dwarf_Unsigned /*fileindex*/,
Dwarf_Unsigned /*linenumber*/,
Dwarf_Error* /*error*/);
Dwarf_Error* /*error*/);
Dwarf_Unsigned /*constant*/,
char * /*string*/,
Dwarf_Error* /*error*/);
/* end macinfo producer functions */
Dwarf_Attribute /*attr of above die*/,
Dwarf_Off * /*returns offset thru this ptr */,
Dwarf_Error * /*error*/);
#ifdef __cplusplus
}
#endif
#endif /* _LIBDWARF_H */