xref: /minix3/external/bsd/elftoolchain/dist/libdwarf/dwarf_dieoffset.3 (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc.\"	$NetBSD: dwarf_dieoffset.3,v 1.2 2014/03/09 16:58:03 christos Exp $
2*0a6a1f1dSLionel Sambuc.\"
3*0a6a1f1dSLionel Sambuc.\" Copyright (c) 2010 Kai Wang
4*0a6a1f1dSLionel Sambuc.\" All rights reserved.
5*0a6a1f1dSLionel Sambuc.\"
6*0a6a1f1dSLionel Sambuc.\" Redistribution and use in source and binary forms, with or without
7*0a6a1f1dSLionel Sambuc.\" modification, are permitted provided that the following conditions
8*0a6a1f1dSLionel Sambuc.\" are met:
9*0a6a1f1dSLionel Sambuc.\" 1. Redistributions of source code must retain the above copyright
10*0a6a1f1dSLionel Sambuc.\"    notice, this list of conditions and the following disclaimer.
11*0a6a1f1dSLionel Sambuc.\" 2. Redistributions in binary form must reproduce the above copyright
12*0a6a1f1dSLionel Sambuc.\"    notice, this list of conditions and the following disclaimer in the
13*0a6a1f1dSLionel Sambuc.\"    documentation and/or other materials provided with the distribution.
14*0a6a1f1dSLionel Sambuc.\"
15*0a6a1f1dSLionel Sambuc.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16*0a6a1f1dSLionel Sambuc.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17*0a6a1f1dSLionel Sambuc.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18*0a6a1f1dSLionel Sambuc.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19*0a6a1f1dSLionel Sambuc.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20*0a6a1f1dSLionel Sambuc.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21*0a6a1f1dSLionel Sambuc.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22*0a6a1f1dSLionel Sambuc.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23*0a6a1f1dSLionel Sambuc.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24*0a6a1f1dSLionel Sambuc.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25*0a6a1f1dSLionel Sambuc.\" SUCH DAMAGE.
26*0a6a1f1dSLionel Sambuc.\"
27*0a6a1f1dSLionel Sambuc.\" Id: dwarf_dieoffset.3 2073 2011-10-27 03:30:47Z jkoshy
28*0a6a1f1dSLionel Sambuc.\"
29*0a6a1f1dSLionel Sambuc.Dd April 17, 2010
30*0a6a1f1dSLionel Sambuc.Os
31*0a6a1f1dSLionel Sambuc.Dt DWARF_DIEOFFSET 3
32*0a6a1f1dSLionel Sambuc.Sh NAME
33*0a6a1f1dSLionel Sambuc.Nm dwarf_die_CU_offset ,
34*0a6a1f1dSLionel Sambuc.Nm dwarf_die_CU_offset_range ,
35*0a6a1f1dSLionel Sambuc.Nm dwarf_dieoffset ,
36*0a6a1f1dSLionel Sambuc.Nm dwarf_get_cu_die_offset_given_cu_header_offset
37*0a6a1f1dSLionel Sambuc.Nd return offsets of DWARF debugging information entries
38*0a6a1f1dSLionel Sambuc.Sh LIBRARY
39*0a6a1f1dSLionel Sambuc.Lb libdwarf
40*0a6a1f1dSLionel Sambuc.Sh SYNOPSIS
41*0a6a1f1dSLionel Sambuc.In libdwarf.h
42*0a6a1f1dSLionel Sambuc.Ft int
43*0a6a1f1dSLionel Sambuc.Fo dwarf_die_CU_offset
44*0a6a1f1dSLionel Sambuc.Fa "Dwarf_Die die"
45*0a6a1f1dSLionel Sambuc.Fa "Dwarf_Off *ret_offset"
46*0a6a1f1dSLionel Sambuc.Fa "Dwarf_Error *err"
47*0a6a1f1dSLionel Sambuc.Fc
48*0a6a1f1dSLionel Sambuc.Ft int
49*0a6a1f1dSLionel Sambuc.Fo dwarf_die_CU_offset_range
50*0a6a1f1dSLionel Sambuc.Fa "Dwarf_Die die"
51*0a6a1f1dSLionel Sambuc.Fa "Dwarf_Off *cu_offset"
52*0a6a1f1dSLionel Sambuc.Fa "Dwarf_Off *cu_length"
53*0a6a1f1dSLionel Sambuc.Fa "Dwarf_Error *err"
54*0a6a1f1dSLionel Sambuc.Fc
55*0a6a1f1dSLionel Sambuc.Ft int
56*0a6a1f1dSLionel Sambuc.Fo dwarf_dieoffset
57*0a6a1f1dSLionel Sambuc.Fa "Dwarf_Die die"
58*0a6a1f1dSLionel Sambuc.Fa "Dwarf_Off *ret_offset"
59*0a6a1f1dSLionel Sambuc.Fa "Dwarf_Error *err"
60*0a6a1f1dSLionel Sambuc.Fc
61*0a6a1f1dSLionel Sambuc.Ft int
62*0a6a1f1dSLionel Sambuc.Fo dwarf_get_cu_die_offset_given_cu_header_offset
63*0a6a1f1dSLionel Sambuc.Fa "Dwarf_Debug dbg"
64*0a6a1f1dSLionel Sambuc.Fa "Dwarf_Off in_cu_header_offset"
65*0a6a1f1dSLionel Sambuc.Fa "Dwarf_Off *out_cu_die_offset"
66*0a6a1f1dSLionel Sambuc.Fa "Dwarf_Error *err"
67*0a6a1f1dSLionel Sambuc.Fc
68*0a6a1f1dSLionel Sambuc.Sh DESCRIPTION
69*0a6a1f1dSLionel SambucThese functions are used to retrieve offsets for DWARF debugging
70*0a6a1f1dSLionel Sambucinformation entries.
71*0a6a1f1dSLionel Sambuc.Pp
72*0a6a1f1dSLionel SambucFunction
73*0a6a1f1dSLionel Sambuc.Fn dwarf_die_CU_offset
74*0a6a1f1dSLionel Sambucreturns the offset of the debugging information entry referenced by
75*0a6a1f1dSLionel Sambucargument
76*0a6a1f1dSLionel Sambuc.Ar die
77*0a6a1f1dSLionel Sambucrelative to the start of its containing compilation unit.
78*0a6a1f1dSLionel SambucArgument
79*0a6a1f1dSLionel Sambuc.Ar ret_offset
80*0a6a1f1dSLionel Sambucshould point to the location that is to hold the returned offset.
81*0a6a1f1dSLionel SambucIf argument
82*0a6a1f1dSLionel Sambuc.Ar err
83*0a6a1f1dSLionel Sambucis non-NULL, it will be used to return an error descriptor in case of
84*0a6a1f1dSLionel Sambucan error.
85*0a6a1f1dSLionel Sambuc.Pp
86*0a6a1f1dSLionel SambucFunction
87*0a6a1f1dSLionel Sambuc.Fn dwarf_die_CU_offset_range
88*0a6a1f1dSLionel Sambucreturns the section-relative offset and length of the compilation unit
89*0a6a1f1dSLionel Sambuccontaining the debugging information entry referenced by argument
90*0a6a1f1dSLionel Sambuc.Ar die .
91*0a6a1f1dSLionel SambucArgument
92*0a6a1f1dSLionel Sambuc.Ar cu_offset
93*0a6a1f1dSLionel Sambucshould point to a location that will hold the returned offset.
94*0a6a1f1dSLionel SambucArgument
95*0a6a1f1dSLionel Sambuc.Ar cu_length
96*0a6a1f1dSLionel Sambucshould point to a location that will hold the returned length of the
97*0a6a1f1dSLionel Sambuccompilation unit.
98*0a6a1f1dSLionel SambucIf argument
99*0a6a1f1dSLionel Sambuc.Ar err
100*0a6a1f1dSLionel Sambucis non-NULL, it will be used to return an error descriptor in case of
101*0a6a1f1dSLionel Sambucan error.
102*0a6a1f1dSLionel Sambuc.Pp
103*0a6a1f1dSLionel SambucFunction
104*0a6a1f1dSLionel Sambuc.Fn dwarf_dieoffset
105*0a6a1f1dSLionel Sambucretrieves the section-relative offset of the debugging information
106*0a6a1f1dSLionel Sambucentry referenced by argument
107*0a6a1f1dSLionel Sambuc.Ar die .
108*0a6a1f1dSLionel SambucArgument
109*0a6a1f1dSLionel Sambuc.Ar ret_offset
110*0a6a1f1dSLionel Sambucshould point to a location that is to hold the returned
111*0a6a1f1dSLionel Sambucsection-relative offset.
112*0a6a1f1dSLionel SambucIf argument
113*0a6a1f1dSLionel Sambuc.Ar err
114*0a6a1f1dSLionel Sambucis non-NULL, it will be used to return an error descriptor in case of
115*0a6a1f1dSLionel Sambucan error.
116*0a6a1f1dSLionel Sambuc.Pp
117*0a6a1f1dSLionel SambucFunction
118*0a6a1f1dSLionel Sambuc.Fn dwarf_get_cu_die_offset_given_cu_header_offset
119*0a6a1f1dSLionel Sambucreturns the offset for the debugging information entry for a
120*0a6a1f1dSLionel Sambuccompilation unit, given an offset to the header of the compilation
121*0a6a1f1dSLionel Sambucunit.
122*0a6a1f1dSLionel SambucArgument
123*0a6a1f1dSLionel Sambuc.Ar dbg
124*0a6a1f1dSLionel Sambucshould reference a valid debugging context allocated using
125*0a6a1f1dSLionel Sambuc.Xr dwarf_init 3 .
126*0a6a1f1dSLionel SambucArgument
127*0a6a1f1dSLionel Sambuc.Ar in_cu_header_offset
128*0a6a1f1dSLionel Sambuccontains the offset to the start of a compilation unit.
129*0a6a1f1dSLionel SambucArgument
130*0a6a1f1dSLionel Sambuc.Ar out_cu_die_offset
131*0a6a1f1dSLionel Sambucpoints to a location that will hold the returned offset.
132*0a6a1f1dSLionel SambucIf argument
133*0a6a1f1dSLionel Sambuc.Ar err
134*0a6a1f1dSLionel Sambucis non-NULL, it will be used to return an error descriptor in case of
135*0a6a1f1dSLionel Sambucan error.
136*0a6a1f1dSLionel Sambuc.Sh RETURN VALUES
137*0a6a1f1dSLionel SambucOn success, these functions returns
138*0a6a1f1dSLionel Sambuc.Dv DW_DLV_OK .
139*0a6a1f1dSLionel SambucIn case of an error, these functions return
140*0a6a1f1dSLionel Sambuc.Dv DW_DLV_ERROR
141*0a6a1f1dSLionel Sambucand set argument
142*0a6a1f1dSLionel Sambuc.Ar err .
143*0a6a1f1dSLionel Sambuc.Pp
144*0a6a1f1dSLionel SambucFunction
145*0a6a1f1dSLionel Sambuc.Fn dwarf_get_cu_die_offset_given_cu_header_offset
146*0a6a1f1dSLionel Sambucreturns
147*0a6a1f1dSLionel Sambuc.Dv DW_DLV_NO_ENTRY
148*0a6a1f1dSLionel Sambucand sets argument
149*0a6a1f1dSLionel Sambuc.Ar err
150*0a6a1f1dSLionel Sambucif there is no compilation unit located at the
151*0a6a1f1dSLionel Sambucoffset specified in argument
152*0a6a1f1dSLionel Sambuc.Ar in_cu_header_offset .
153*0a6a1f1dSLionel Sambuc.Sh ERRORS
154*0a6a1f1dSLionel SambucThese functions may fail with the following errors:
155*0a6a1f1dSLionel Sambuc.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT"
156*0a6a1f1dSLionel Sambuc.It Bq Er DW_DLE_ARGUMENT
157*0a6a1f1dSLionel SambucOne of the arguments
158*0a6a1f1dSLionel Sambuc.Va cu_length ,
159*0a6a1f1dSLionel Sambuc.Va cu_offset ,
160*0a6a1f1dSLionel Sambuc.Va dbg ,
161*0a6a1f1dSLionel Sambuc.Va die ,
162*0a6a1f1dSLionel Sambuc.Va out_cu_die_offset
163*0a6a1f1dSLionel Sambucor
164*0a6a1f1dSLionel Sambuc.Va ret_offset
165*0a6a1f1dSLionel Sambucwas NULL.
166*0a6a1f1dSLionel Sambuc.It Bq Er DW_DLE_NO_ENTRY
167*0a6a1f1dSLionel SambucArgument
168*0a6a1f1dSLionel Sambuc.Ar in_cu_header_offset
169*0a6a1f1dSLionel Sambucspecified an unknown offset.
170*0a6a1f1dSLionel Sambuc.El
171*0a6a1f1dSLionel Sambuc.Sh SEE ALSO
172*0a6a1f1dSLionel Sambuc.Xr dwarf 3 ,
173*0a6a1f1dSLionel Sambuc.Xr dwarf_next_cu_header 3 ,
174*0a6a1f1dSLionel Sambuc.Xr dwarf_offdie 3
175