1*5ac3bc71Schristos.\" $NetBSD: dwarf_highpc.3,v 1.6 2024/03/03 17:37:31 christos Exp $ 2e81373b4Schristos.\" 342bd3019Schristos.\" Copyright (c) 2010,2014 Kai Wang 49dd9d0cfSchristos.\" All rights reserved. 59dd9d0cfSchristos.\" 69dd9d0cfSchristos.\" Redistribution and use in source and binary forms, with or without 79dd9d0cfSchristos.\" modification, are permitted provided that the following conditions 89dd9d0cfSchristos.\" are met: 99dd9d0cfSchristos.\" 1. Redistributions of source code must retain the above copyright 109dd9d0cfSchristos.\" notice, this list of conditions and the following disclaimer. 119dd9d0cfSchristos.\" 2. Redistributions in binary form must reproduce the above copyright 129dd9d0cfSchristos.\" notice, this list of conditions and the following disclaimer in the 139dd9d0cfSchristos.\" documentation and/or other materials provided with the distribution. 149dd9d0cfSchristos.\" 159dd9d0cfSchristos.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 169dd9d0cfSchristos.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 179dd9d0cfSchristos.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 189dd9d0cfSchristos.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 199dd9d0cfSchristos.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 209dd9d0cfSchristos.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 219dd9d0cfSchristos.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 229dd9d0cfSchristos.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 239dd9d0cfSchristos.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 249dd9d0cfSchristos.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 259dd9d0cfSchristos.\" SUCH DAMAGE. 269dd9d0cfSchristos.\" 27cdbf1fe1Sjkoshy.\" Id: dwarf_highpc.3 3963 2022-03-12 16:07:32Z jkoshy 289dd9d0cfSchristos.\" 2942bd3019Schristos.Dd July 22, 2014 309dd9d0cfSchristos.Dt DWARF_HIGHPC 3 31604b0842Sjkoshy.Os 329dd9d0cfSchristos.Sh NAME 339dd9d0cfSchristos.Nm dwarf_arrayorder , 349dd9d0cfSchristos.Nm dwarf_bitoffset , 359dd9d0cfSchristos.Nm dwarf_bitsize , 369dd9d0cfSchristos.Nm dwarf_bytesize , 379dd9d0cfSchristos.Nm dwarf_highpc , 3842bd3019Schristos.Nm dwarf_highpc_b , 399dd9d0cfSchristos.Nm dwarf_lowpc , 409dd9d0cfSchristos.Nm dwarf_srclang 419dd9d0cfSchristos.Nd retrieve the value of a DWARF attribute 429dd9d0cfSchristos.Sh LIBRARY 439dd9d0cfSchristos.Lb libdwarf 449dd9d0cfSchristos.Sh SYNOPSIS 459dd9d0cfSchristos.In libdwarf.h 469dd9d0cfSchristos.Ft int 479dd9d0cfSchristos.Fo dwarf_arrayorder 489dd9d0cfSchristos.Fa "Dwarf_Die die" 499dd9d0cfSchristos.Fa "Dwarf_Unsigned *ret_order" 509dd9d0cfSchristos.Fa "Dwarf_Error *err" 519dd9d0cfSchristos.Fc 529dd9d0cfSchristos.Ft int 539dd9d0cfSchristos.Fo dwarf_bitoffset 549dd9d0cfSchristos.Fa "Dwarf_Die die" 559dd9d0cfSchristos.Fa "Dwarf_Unsigned *ret_size" 569dd9d0cfSchristos.Fa "Dwarf_Error *err" 579dd9d0cfSchristos.Fc 589dd9d0cfSchristos.Ft int 599dd9d0cfSchristos.Fo dwarf_bitsize 609dd9d0cfSchristos.Fa "Dwarf_Die die" 619dd9d0cfSchristos.Fa "Dwarf_Unsigned *ret_size" 629dd9d0cfSchristos.Fa "Dwarf_Error *err" 639dd9d0cfSchristos.Fc 649dd9d0cfSchristos.Ft int 659dd9d0cfSchristos.Fo dwarf_bytesize 669dd9d0cfSchristos.Fa "Dwarf_Die die" 679dd9d0cfSchristos.Fa "Dwarf_Unsigned *ret_size" 689dd9d0cfSchristos.Fa "Dwarf_Error *err" 699dd9d0cfSchristos.Fc 709dd9d0cfSchristos.Ft int 719dd9d0cfSchristos.Fo dwarf_highpc 729dd9d0cfSchristos.Fa "Dwarf_Die die" 739dd9d0cfSchristos.Fa "Dwarf_Addr *ret_highpc" 749dd9d0cfSchristos.Fa "Dwarf_Error *err" 759dd9d0cfSchristos.Fc 769dd9d0cfSchristos.Ft int 7742bd3019Schristos.Fo dwarf_highpc_b 7842bd3019Schristos.Fa "Dwarf_Die die" 7942bd3019Schristos.Fa "Dwarf_Addr *ret_highpc" 8042bd3019Schristos.Fa "Dwarf_Half *ret_form" 8142bd3019Schristos.Fa "enum Dwarf_Form_Class *ret_class" 8242bd3019Schristos.Fa "Dwarf_Error *err" 8342bd3019Schristos.Fc 8442bd3019Schristos.Ft int 859dd9d0cfSchristos.Fo dwarf_lowpc 869dd9d0cfSchristos.Fa "Dwarf_Die die" 879dd9d0cfSchristos.Fa "Dwarf_Addr *ret_lowpc" 889dd9d0cfSchristos.Fa "Dwarf_Error *err" 899dd9d0cfSchristos.Fc 909dd9d0cfSchristos.Ft int 919dd9d0cfSchristos.Fo dwarf_srclang 929dd9d0cfSchristos.Fa "Dwarf_Die die" 939dd9d0cfSchristos.Fa "Dwarf_Unsigned *ret_lang" 949dd9d0cfSchristos.Fa "Dwarf_Error *err" 959dd9d0cfSchristos.Fc 969dd9d0cfSchristos.Sh DESCRIPTION 979dd9d0cfSchristosThese convenience functions are used to retrieve DWARF attribute 989dd9d0cfSchristosvalues associated with a Debugging Information Entry (DIE) descriptor 999dd9d0cfSchristosdenoted by argument 100cdbf1fe1Sjkoshy.Fa die . 1019dd9d0cfSchristosThese functions store the value of the requested attribute into the 1029dd9d0cfSchristoslocation pointed to by their second argument, provided that the requested 1039dd9d0cfSchristosattribute exists in the debugging information entry. 1049dd9d0cfSchristos.Pp 1059dd9d0cfSchristosThe list of functions and the DWARF attribute that they retrieve are: 1069dd9d0cfSchristos.Pp 1079dd9d0cfSchristos.Bl -tag -width ".Fn dwarf_arrayorder" -compact 1089dd9d0cfSchristos.It Fn dwarf_arrayorder 1099dd9d0cfSchristosRetrieve the 1109dd9d0cfSchristos.Dv DW_AT_ordering 1119dd9d0cfSchristosattribute value. 1129dd9d0cfSchristos.It Fn dwarf_bitoffset 1139dd9d0cfSchristosRetrieve the 1149dd9d0cfSchristos.Dv DW_AT_bit_offset 1159dd9d0cfSchristosattribute value. 1169dd9d0cfSchristos.It Fn dwarf_bitsize 1179dd9d0cfSchristosRetrieve the 1189dd9d0cfSchristos.Dv DW_AT_bit_size 1199dd9d0cfSchristosattribute value. 1209dd9d0cfSchristos.It Fn dwarf_bytesize 1219dd9d0cfSchristosRetrieve the 1229dd9d0cfSchristos.Dv DW_AT_byte_size 1239dd9d0cfSchristosattribute value. 1249dd9d0cfSchristos.It Fn dwarf_highpc 1259dd9d0cfSchristosRetrieve the 1269dd9d0cfSchristos.Dv DW_AT_high_pc 1279dd9d0cfSchristosattribute value. 12842bd3019Schristos.It Fn dwarf_highpc_b 12942bd3019SchristosRetrieve the 13042bd3019Schristos.Dv DW_AT_high_pc 13142bd3019Schristosattribute value. 1329dd9d0cfSchristos.It Fn dwarf_lowpc 1339dd9d0cfSchristosRetrieve the 1349dd9d0cfSchristos.Dv DW_AT_low_pc 1359dd9d0cfSchristosattribute value. 1369dd9d0cfSchristos.It Fn dwarf_srclang 1379dd9d0cfSchristosRetrieve the 1389dd9d0cfSchristos.Dv DW_AT_language 1399dd9d0cfSchristosattribute value. 1409dd9d0cfSchristos.El 14142bd3019Schristos.Pp 14242bd3019SchristosFunction 14342bd3019Schristos.Fn dwarf_highpc_b 14442bd3019Schristosis an enhanced version of function 14542bd3019Schristos.Fn dwarf_highpc . 14642bd3019SchristosIt sets the location specified by argument 147cdbf1fe1Sjkoshy.Fa ret_form 14842bd3019Schristosto the form code of the attribute 14942bd3019Schristos.Dv DW_AT_high_pc , 15042bd3019Schristosand sets the location specified by argument 151cdbf1fe1Sjkoshy.Fa ret_class 15242bd3019Schristosto the class of that form. 153cdbf1fe1SjkoshyA value of 154cdbf1fe1Sjkoshy.Dv NULL 155cdbf1fe1Sjkoshymay be used for either of the arguments 156cdbf1fe1Sjkoshy.Fa ret_form 15742bd3019Schristosor 158cdbf1fe1Sjkoshy.Fa ret_class 15942bd3019Schristosif the caller is not interested in the respective value. 1609dd9d0cfSchristos.Sh RETURN VALUES 1619dd9d0cfSchristosThese functions return 162604b0842Sjkoshy.Dv DW_DLV_OK 163604b0842Sjkoshyon success. 1649dd9d0cfSchristos.Pp 1659dd9d0cfSchristosIf the debugging information entry descriptor denoted by argument 166cdbf1fe1Sjkoshy.Fa die 1679dd9d0cfSchristosdoes not contain the requested attribute, these functions return 1689dd9d0cfSchristos.Dv DW_DLV_NO_ENTRY 1699dd9d0cfSchristosand set argument 170cdbf1fe1Sjkoshy.Fa err . 1719dd9d0cfSchristosFor other errors, they return 1729dd9d0cfSchristos.Dv DW_DLV_ERROR 1739dd9d0cfSchristosand set argument 174cdbf1fe1Sjkoshy.Fa err . 1759dd9d0cfSchristos.Sh ERRORS 1769dd9d0cfSchristosThese functions can fail with the following errors: 1779dd9d0cfSchristos.Bl -tag -width ".Bq Er DW_DLE_ARGUMENT" 1789dd9d0cfSchristos.It Bq Er DW_DLE_ARGUMENT 1799dd9d0cfSchristosArguments 180cdbf1fe1Sjkoshy.Fa die , 181cdbf1fe1Sjkoshy.Fa ret_highpc , 182cdbf1fe1Sjkoshy.Fa ret_lowpc , 183cdbf1fe1Sjkoshy.Fa ret_size , 184cdbf1fe1Sjkoshy.Fa ret_lang 1859dd9d0cfSchristosor 186cdbf1fe1Sjkoshy.Fa ret_order 187cdbf1fe1Sjkoshywere 188cdbf1fe1Sjkoshy.Dv NULL . 1899dd9d0cfSchristos.It Bq Er DW_DLE_NO_ENTRY 1909dd9d0cfSchristosArgument 191cdbf1fe1Sjkoshy.Fa die 1929dd9d0cfSchristoshad no requested attribute. 1939dd9d0cfSchristos.El 1949dd9d0cfSchristos.Sh SEE ALSO 1959dd9d0cfSchristos.Xr dwarf 3 , 1969dd9d0cfSchristos.Xr dwarf_attr 3 , 1979dd9d0cfSchristos.Xr dwarf_attrlist 3 , 198604b0842Sjkoshy.Xr dwarf_get_form_class 3 , 199604b0842Sjkoshy.Xr dwarf_hasattr 3 200