Home | History | Annotate | Download | only in elff
      1 /* Copyright (C) 2007-2010 The Android Open Source Project
      2 **
      3 ** This software is licensed under the terms of the GNU General Public
      4 ** License version 2, as published by the Free Software Foundation, and
      5 ** may be copied, distributed, and modified under those terms.
      6 **
      7 ** This program is distributed in the hope that it will be useful,
      8 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
      9 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     10 ** GNU General Public License for more details.
     11 */
     12 
     13 /*
     14  * Contains declarations of misc. DWARF utility routines.
     15  */
     16 
     17 #ifndef ELFF_DWARF_UTILS_
     18 #define ELFF_DWARF_UTILS_
     19 
     20 #include "dwarf_defs.h"
     21 
     22 /* Gets DWARF attribute name string (DW_AT_Xxx) for a given attribute ID.
     23  * Param:
     24  *  at - DWARF attribute ID to get name string for.
     25  * Return:
     26  *  Attribute name string. Note that this routine returns "DW_AT_Unknown",
     27  *  if DWARF attribute value passed to this routine has not been recognized.
     28  */
     29 const char* dwarf_at_name(Dwarf_At at);
     30 
     31 /* Gets DWARF form name string (DW_FORM_Xxx) for a given form.
     32  * Param:
     33  *  form - DWARF form to get name string for.
     34  * Return:
     35  *  Form name string. Note that this routine returns "DW_FORM_Unknown", if
     36  *  DWARF form value passed to this routine has not been recognized.
     37  */
     38 const char* dwarf_form_name(Dwarf_Form form);
     39 
     40 /* Gets DWARF tag name string (DW_TAG_Xxx) for a given tag.
     41  * Param:
     42  *  tag - DWARF tag to get name string for.
     43  * Return:
     44  *  Tag name string. Note that this routine returns "DW_TAG_Unknown", if DWARF
     45  *  tag value passed to this routine has not been recognized.
     46  */
     47 const char* dwarf_tag_name(Dwarf_Tag tag);
     48 
     49 /* Dumps DWARF attribute to stdout.
     50  * Param:
     51  *  at - Attribute ID (DW_AT_Xxx)
     52  *  form - Attribute form (DW_FORM_Xxx)
     53  *  val - Attribute value.
     54  */
     55 void dump_attrib(Dwarf_At at, Dwarf_Form form, const Dwarf_Value* val);
     56 
     57 /* Dumps DWARF attribute value to stdout.
     58  * Param:
     59  *  val - Attribute value.
     60  */
     61 void dump_value(const Dwarf_Value* val);
     62 
     63 #endif  // ELFF_DWARF_UTILS_
     64