summaryrefslogtreecommitdiffstats
path: root/src/dwarfstrings.c
diff options
context:
space:
mode:
authorPetr Machata <[email protected]>2009-09-09 15:40:23 +0200
committerPetr Machata <[email protected]>2010-08-18 14:55:09 +0200
commit8283a0db67d305b19ffec0083db5884a03d0cfd7 (patch)
treefd0956f4fa0f32104c661f84b755bb4ed6346e22 /src/dwarfstrings.c
parent4b3da298d258c9674f041b02f62f3e0149595a5d (diff)
dwarflint: Used wrong formatter for DW_LNS_ opcodes
* add the right formatter to dwarfstrings.[ch]
Diffstat (limited to 'src/dwarfstrings.c')
-rw-r--r--src/dwarfstrings.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/dwarfstrings.c b/src/dwarfstrings.c
index fdb3ede4..bfccece8 100644
--- a/src/dwarfstrings.c
+++ b/src/dwarfstrings.c
@@ -630,3 +630,28 @@ dwarf_locexpr_opcode_string (unsigned int code)
return ret;
}
+
+
+const char *
+dwarf_line_standard_opcode_string (unsigned int code)
+{
+ static const char *const known[] =
+ {
+#define ONE_KNOWN_DW_LNS(NAME, CODE) [CODE] = #NAME,
+ ALL_KNOWN_DW_LNS
+#undef ONE_KNOWN_DW_LNS
+ };
+
+ 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;
+}