diff options
author | Yusuke Endoh <[email protected]> | 2022-12-22 22:34:34 +0900 |
---|---|---|
committer | Yusuke Endoh <[email protected]> | 2022-12-23 00:32:35 +0900 |
commit | 515f816b7f3985e0cfa889a574c3b93274d50b6f () | |
tree | 047e6dc2e9e1f315d38f696490542ff3fc0ddcbc /addr2line.c | |
parent | 5234f99b76689e7cf711961a737efd4de863460a (diff) |
addr2line.c: Support DW_FORM_strx* forms
Notes: Merged: https://.com/ruby/ruby/pull/6993
-rw-r--r-- | addr2line.c | 24 |
1 files changed, 19 insertions, 5 deletions
@@ -1124,6 +1124,20 @@ get_cstr_value(DebugInfoValue *v) } } static void debug_info_reader_read_value(DebugInfoReader *reader, uint64_t form, DebugInfoValue *v) { @@ -1236,7 +1250,7 @@ debug_info_reader_read_value(DebugInfoReader *reader, uint64_t form, DebugInfoVa set_uint_value(v, 1); break; case DW_FORM_strx: - set_uint_value(v, uleb128(&reader->p)); break; case DW_FORM_addrx: set_addr_idx_value(v, uleb128(&reader->p)); @@ -1272,16 +1286,16 @@ debug_info_reader_read_value(DebugInfoReader *reader, uint64_t form, DebugInfoVa set_uint_value(v, read_uint64(&reader->p)); break; case DW_FORM_strx1: - set_uint_value(v, read_uint8(&reader->p)); break; case DW_FORM_strx2: - set_uint_value(v, read_uint16(&reader->p)); break; case DW_FORM_strx3: - set_uint_value(v, read_uint24(&reader->p)); break; case DW_FORM_strx4: - set_uint_value(v, read_uint32(&reader->p)); break; case DW_FORM_addrx1: set_addr_idx_value(v, read_uint8(&reader->p)); |