summaryrefslogtreecommitdiffstats
path: root/src/dwarfstrings.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dwarfstrings.c')
-rw-r--r--src/dwarfstrings.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/dwarfstrings.c b/src/dwarfstrings.c
index 91933f01..9826cf30 100644
--- a/src/dwarfstrings.c
+++ b/src/dwarfstrings.c
@@ -765,7 +765,6 @@ dwarf_locexpr_opcode_string (unsigned int code)
return ret;
}
-
const char *
dwarf_line_standard_opcode_string (unsigned int code)
{
@@ -789,3 +788,27 @@ dwarf_line_standard_opcode_string (unsigned int code)
return ret;
}
+
+const char *
+dwarf_line_extended_opcode_string (unsigned int code)
+{
+ static const char *const known[] =
+ {
+#define ONE_KNOWN_DW_LNE(NAME, CODE) [CODE] = #NAME,
+ ALL_KNOWN_DW_LNE
+#undef ONE_KNOWN_DW_LNE
+ };
+
+ const char *ret = NULL;
+ if (likely (code < sizeof (known) / sizeof (known[0])))
+ ret = known[code];
+
+ if (ret == NULL)
+ {
+ static char buf[40];
+ snprintf (buf, sizeof buf, gettext ("unknown opcode %x"), code);
+ ret = buf;
+ }
+
+ return ret;
+}