DWARF_START_MACRO_FILE(3)

NAME
dwarf_start_macro_file - mark the start of a source file inclusion

LIBRARY
libdwarf

SYNOPSIS
#include <libdwarf.h>
int
dwarf_start_macro_file(Dwarf_P_Debug dbg, Dwarf_Unsigned lineno, Dwarf_Unsigned fileindex, Dwarf_Error *err);

DESCRIPTION
Function dwarf_start_macro_file() marks the start of a new source file inclusion.

Argument dbg should reference a DWARF producer instance allocated using dwarf_producer_init(3) or dwarf_producer_init_b(3).

Argument lineno specifies the line number of the source line where the source file inclusion occurs. A value of zero is used to indicate the file for the compilation unit source itself.

Argument fileindex specifies the index of the source file that is being included. Valid source file indices are those returned by dwarf_add_file_decl(3).

If argument err is not NULL, it will be used to store error information in case of an error.

RETURN VALUES
On success, function dwarf_start_macro_file() returns DW_DLV_OK. In case of an error, function dwarf_start_macro_file() returns DW_DLV_ERROR and sets the argument err.

ERRORS
Function dwarf_start_macro_file() can fail with:

[DW_DLE_ARGUMENT]
    Argument dbg was NULL.

[DW_DLE_MEMORY]
    An out of memory condition was encountered during the execution of the function.

SEE ALSO
dwarf(3), dwarf_add_file_decl(3), dwarf_def_macro(3), dwarf_end_macro_file(3), dwarf_producer_init(3), dwarf_producer_init_b(3), dwarf_undef_macro(3), dwarf_vendor_ext(3)