![]() |
![]()
| ![]() |
![]()
NAME
LIBRARYDWARF Access Library (libdwarf, -ldwarf) SYNOPSIS
Dwarf_Unsigned
DESCRIPTIONFunction
Argument dbg should reference a DWARF producer instance allocated using dwarf_producer_init(3) or dwarf_producer_init_b(3). Argument filendx specifies the index of the source file that contains the source line in question. Valid source file indices are those returned by the function dwarf_add_file_decl(3). Argument off specifies a relocatable program address. The ELF symbol to be used for relocation is set by a prior call to the function dwarf_lne_set_address(3). Argument lineno specifies the line number of the source line. Argument column specifies the column number within the source line. If the argument is_stmt is set to true, it indicates that the instruction at the address specified by argument off is a recommended breakpoint location, i.e., the first instruction in the instruction sequence generated by the source line. If the argument basic_block is set to true, it indicates that the instruction at the address specified by argument off is the first instruction of a basic block. If argument err is not NULL, it will be used to store error information in case of an error. RETURN VALUESOn success, function
EXAMPLESTo add line number information to the producer instance, use: Dwarf_P_Debug dbg; Dwarf_Error de; Dwarf_Unsigned dir, filendx; /* ... assume dbg refers to a DWARF producer instance ... */ dir = dwarf_add_directory_decl(dbg, "/home/foo", &de); if (dir == DW_DLV_NOCOUNT) errx(EXIT_FAILURE, "dwarf_add_directory_decl failed: %s", dwarf_errmsg(-1)); filendx = dwarf_add_file_decl(dbg, "bar.c", dir, 0, 1234, &de); if (filendx == DW_DLV_NOCOUNT) errx(EXIT_FAILURE, "dwarf_add_file_decl failed: %s", dwarf_errmsg(-1)); if (dwarf_lne_set_address(dbg, 0x4012b0, 12, &de) != DW_DLV_OK) errx(EXIT_FAILURE, "dwarf_lne_set_address failed: %s", dwarf_errmsg(-1)); if (dwarf_add_line_entry(dbg, filendx, 10, 258, 0, 1, 1, &de) != DW_DLV_OK) errx(EXIT_FAILURE, "dwarf_add_line_entry failed: %s", dwarf_errmsg(-1)); ERRORSFunction
SEE ALSOdwarf(3), dwarf_add_directory_decl(3), dwarf_add_file_decl(3), dwarf_lne_end_sequence(3), dwarf_lne_set_address(3), dwarf_producer_init(3), dwarf_producer_init_b(3)
|