Files
binutils-gdb/gdb/dwarf2/stringify.c
Simon Marchi c19c928f7b Revert past commits
I accidentally pushed my work-in-progress branch... revert that.  Sorry
for the noise :(.

The list of commits reverted are:

    ae2a50a9ae attempt to revamp to the CU/TU list
    e9386435c9 gdb/dwarf: print DWARF CUs/TUs in "maint print objfiles"
    6cbd64aa3e gdb/dwarf: add dwarf_source_language_name
    32a187da76 libiberty: move DW_LANG_* definitions to dwarf2.def
    b3fa38aef5 gdb/dwarf: move index unit vectors to debug names reader and use them
    30ba744189 gdb/dwarf: track comp and type units count
    bedb4e09f2 gdb/dwarf: remove unnecessary braces
    b4f18de12c gdb/dwarf: use ranged for loop in some pots

Change-Id: I80aed2847025f5b15c16c997680783b39858a703
2025-03-10 16:15:42 -04:00

127 lines
2.8 KiB
C

/* DWARF stringify code
Copyright (C) 1994-2024 Free Software Foundation, Inc.
Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
Inc. with support from Florida State University (under contract
with the Ada Joint Program Office), and Silicon Graphics, Inc.
Initial contribution by Brent Benson, Harris Computer Systems, Inc.,
based on Fred Fish's (Cygnus Support) implementation of DWARF 1
support.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "dwarf2.h"
#include "dwarf2/stringify.h"
/* A convenience function that returns an "unknown" DWARF name,
including the value of V. STR is the name of the entity being
printed, e.g., "TAG". */
static const char *
dwarf_unknown (const char *str, unsigned v)
{
char *cell = get_print_cell ();
xsnprintf (cell, PRINT_CELL_SIZE, "DW_%s_<unknown: %u>", str, v);
return cell;
}
/* See stringify.h. */
const char *
dwarf_tag_name (unsigned tag)
{
const char *name = get_DW_TAG_name (tag);
if (name == NULL)
return dwarf_unknown ("TAG", tag);
return name;
}
/* See stringify.h. */
const char *
dwarf_attr_name (unsigned attr)
{
const char *name;
#ifdef MIPS /* collides with DW_AT_HP_block_index */
if (attr == DW_AT_MIPS_fde)
return "DW_AT_MIPS_fde";
#else
if (attr == DW_AT_HP_block_index)
return "DW_AT_HP_block_index";
#endif
name = get_DW_AT_name (attr);
if (name == NULL)
return dwarf_unknown ("AT", attr);
return name;
}
/* See stringify.h. */
const char *
dwarf_form_name (unsigned form)
{
const char *name = get_DW_FORM_name (form);
if (name == NULL)
return dwarf_unknown ("FORM", form);
return name;
}
/* See stringify.h. */
const char *
dwarf_bool_name (unsigned mybool)
{
if (mybool)
return "TRUE";
else
return "FALSE";
}
/* See stringify.h. */
const char *
dwarf_type_encoding_name (unsigned enc)
{
const char *name = get_DW_ATE_name (enc);
if (name == NULL)
return dwarf_unknown ("ATE", enc);
return name;
}
/* See stringify.h. */
const char *
dwarf_unit_type_name (int unit_type)
{
const char *name = get_DW_UT_name (unit_type);
if (name == nullptr)
return dwarf_unknown ("UT", unit_type);
return name;
}