summaryrefslogtreecommitdiff
path: root/addr2line.c
diff options
context:
space:
mode:
authorYusuke Endoh <mame@ruby-lang.org>2022-12-22 22:29:39 +0900
committerYusuke Endoh <mame@ruby-lang.org>2022-12-23 00:32:35 +0900
commit303e11697dab49a3522712cdc0b4d34af1dc6bfc (patch)
tree5547b2d161415fa5710592f81bb5e1809cd9352c /addr2line.c
parentd7388f720c706d94f21ee4e169678a71c73ce37c (diff)
downloadruby-303e11697dab49a3522712cdc0b4d34af1dc6bfc.tar.gz
addr2line.c: Keep .debug_str_offsets and .debug_addr sections as well
clang generates DWARF with the sections
Diffstat (limited to 'addr2line.c')
-rw-r--r--addr2line.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/addr2line.c b/addr2line.c
index 600c98ca24..e6054f7126 100644
--- a/addr2line.c
+++ b/addr2line.c
@@ -159,13 +159,15 @@ typedef struct obj_info {
struct dwarf_section debug_info;
struct dwarf_section debug_line;
struct dwarf_section debug_ranges;
+ struct dwarf_section debug_str_offsets;
+ struct dwarf_section debug_addr;
struct dwarf_section debug_rnglists;
struct dwarf_section debug_str;
struct dwarf_section debug_line_str;
struct obj_info *next;
} obj_info_t;
-#define DWARF_SECTION_COUNT 7
+#define DWARF_SECTION_COUNT 9
static struct dwarf_section *
obj_dwarf_section_at(obj_info_t *obj, int n)
@@ -175,6 +177,8 @@ obj_dwarf_section_at(obj_info_t *obj, int n)
&obj->debug_info,
&obj->debug_line,
&obj->debug_ranges,
+ &obj->debug_str_offsets,
+ &obj->debug_addr,
&obj->debug_rnglists,
&obj->debug_str,
&obj->debug_line_str
@@ -1928,6 +1932,8 @@ fill_lines(int num_traces, void **traces, int check_debuglink,
".debug_info",
".debug_line",
".debug_ranges",
+ ".debug_str_offsets",
+ ".debug_addr",
".debug_rnglists",
".debug_str",
".debug_line_str"
@@ -2186,6 +2192,8 @@ found_mach_header:
"__debug_info",
"__debug_line",
"__debug_ranges",
+ "__debug_str_offsets",
+ "__debug_addr",
"__debug_rnglists",
"__debug_str",
"__debug_line_str",