1.\" Copyright (c) 2011 Kai Wang 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23.\" SUCH DAMAGE. 24.\" 25.\" $Id: dwarf_get_fde_range.3 2071 2011-10-27 03:20:00Z jkoshy $ 26.\" 27.Dd May 22, 2011 28.Os 29.Dt DWARF_GET_FDE_RANGE 3 30.Sh NAME 31.Nm dwarf_get_fde_range 32.Nd retrieve range information from an FDE descriptor 33.Sh LIBRARY 34.Lb libdwarf 35.Sh SYNOPSIS 36.In libdwarf.h 37.Ft int 38.Fo dwarf_get_fde_range 39.Fa "Dwarf_Fde fde" 40.Fa "Dwarf_Addr *low_pc" 41.Fa "Dwarf_Unsigned *func_len" 42.Fa "Dwarf_Ptr *fde_bytes" 43.Fa "Dwarf_Unsigned *fde_byte_len" 44.Fa "Dwarf_Off *cie_offset" 45.Fa "Dwarf_Signed *cie_index" 46.Fa "Dwarf_Off *fde_offset" 47.Fa "Dwarf_Error *err" 48.Fc 49.Sh DESCRIPTION 50Function 51.Fn dwarf_get_fde_range 52retrieves range and offset information from a given FDE descriptor. 53.Pp 54Argument 55.Ar fde 56should reference a valid DWARF FDE descriptor. 57.Pp 58Argument 59.Ar low_pc 60should point to a location that will be set to the lowest 61program counter address covered by the FDE descriptor. 62.Pp 63Argument 64.Ar func_len 65should point to a location that will hold the length in bytes of 66the address range covered by the FDE descriptor. 67.Pp 68Argument 69.Ar fde_bytes 70should point to a location that will be set to a pointer to the 71content of the FDE descriptor itself. 72.Pp 73Argument 74.Ar fde_byte_len 75should point to a location that will hold the length in bytes of 76the FDE descriptor itself. 77.Pp 78Argument 79.Ar cie_offset 80should point to a location that will be set to the offset, relative to 81the DWARF 82.Dq ".debug_frame" 83section, of the CIE descriptor associated with the given FDE 84descriptor. 85.Pp 86Argument 87.Ar cie_index 88should point to a location that will hold the index of the CIE 89descriptor associated with the FDE descriptor. 90The returned value is a zero-based index into the array of CIE 91descriptors returned by a prior call to functions 92.Xr dwarf_get_fde_list 3 93or 94.Xr dwarf_get_fde_list_eh 3 . 95.Pp 96Argument 97.Ar fde_offset 98should point to a location that will be set to the offset, relative to 99the DWARF 100.Dq ".debug_frame" 101section, of the FDE descriptor. 102.Pp 103If argument 104.Ar err 105is not NULL, it will be used to store error information in case of an 106error. 107.Sh RETURN VALUES 108Function 109.Fn dwarf_get_fde_range 110returns 111.Dv DW_DLV_OK 112when it succeeds. 113In case of an error, it returns 114.Dv DW_DLV_ERROR 115and sets the argument 116.Ar err . 117.Sh ERRORS 118Function 119.Fn dwarf_get_fde_range 120can fail with: 121.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" 122.It Bq Er DW_DLE_ARGUMENT 123One of the arguments 124.Ar fde , 125.Ar low_pc , 126.Ar func_len , 127.Ar fde_bytes , 128.Ar fde_byte_len , 129.Ar cie_offset , 130.Ar cie_index 131or 132.Ar fde_offset 133was NULL. 134.El 135.Sh SEE ALSO 136.Xr dwarf 3 , 137.Xr dwarf_get_cie_info 3 , 138.Xr dwarf_get_cie_index 3 , 139.Xr dwarf_get_cie_of_fde , 140.Xr dwarf_get_fde_at_pc 3 , 141.Xr dwarf_get_fde_info_for_all_regs 3 , 142.Xr dwarf_get_fde_info_for_all_regs3 3 , 143.Xr dwarf_get_fde_info_for_cfa_reg3 3 , 144.Xr dwarf_get_fde_info_for_reg 3 , 145.Xr dwarf_get_fde_info_for_reg3 3 , 146.Xr dwarf_get_fde_instr_bytes 3 , 147.Xr dwarf_get_fde_list 3 , 148.Xr dwarf_get_fde_list_eh 3 , 149.Xr dwarf_get_fde_n 3 150