Updated: 2021/Apr/14

DWARF_DEF_MACRO(3)         Library Functions Manual         DWARF_DEF_MACRO(3)

     dwarf_def_macro - add a macro definition to a DWARF producer instance

     DWARF Access Library (libdwarf, -ldwarf)

     #include <libdwarf.h>

     dwarf_def_macro(Dwarf_P_Debug dbg, Dwarf_Unsigned lineno, char *name,
         char *value, Dwarf_Error *err);

     Function dwarf_def_macro() adds a macro definition to a DWARF producer

     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
     macro is defined.  A line number of zero is used for macros that are
     defined before any source file is read.

     Argument name should point to a NUL-terminated string containing the name
     of the macro.  For function-like macros this parameter should also
     include parentheses and parameter names if any.

     Argument value should point to a NUL-terminated string containing the
     value of the macro.  If the macro does not have a value, argument value
     should be set to NULL.

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

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

     To record the fact that a macro named _STDIO_H_ was defined at line 20 of
     the current macro file, use:

           Dwarf_P_Debug dbg;
           Dwarf_Error de;

           /* ... Assume 'dbg' refers to a DWARF producer instance... */
           if (dwarf_def_macro(dbg, 20, "_STDIO_H_", NULL, &de) != DW_DLV_OK)
                   errx(EXIT_FAILURE, "dwarf_def_macro failed: %s",

     Function dwarf_def_macro() can fail with:

     [DW_DLE_ARGUMENT]       Either arguments dbg or name was NULL.

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

     dwarf(3), dwarf_end_macro_file(3), dwarf_producer_init(3),
     dwarf_producer_init_b(3), dwarf_start_macro_file(3),
     dwarf_undef_macro(3), dwarf_vendor_ext(3)

NetBSD 9.99                    November 9, 2011                    NetBSD 9.99