GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
DWARF_ADD_LINE_ENTRY(3) FreeBSD Library Functions Manual DWARF_ADD_LINE_ENTRY(3)

dwarf_add_line_entry
add a line number information entry to a producer instance

DWARF Access Library (libdwarf, -ldwarf)

#include <libdwarf.h>

Dwarf_Unsigned
dwarf_add_line_entry(Dwarf_P_Debug dbg, Dwarf_Unsigned filendx, Dwarf_Addr off, Dwarf_Unsigned lineno, Dwarf_Signed column, Dwarf_Bool is_stmt, Dwarf_Bool basic_block, Dwarf_Error *err);

Function dwarf_add_line_entry() adds a line number information entry to a DWARF producer instance.

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.

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

To 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));

Function dwarf_add_line_entry() can fail with:
[]
Argument dbg was NULL.
[]
The function dwarf_lne_set_address(3) was not called before calling this function.
[]
An out of memory condition was encountered during the execution of the function.

dwarf(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)
June 30, 2013 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.