summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addr2line.c6
-rw-r--r--vm_dump.c18
2 files changed, 15 insertions, 9 deletions
diff --git a/addr2line.c b/addr2line.c
index 4a5a24df84..0b48278f75 100644
--- a/addr2line.c
+++ b/addr2line.c
@@ -571,11 +571,17 @@ fill_lines(int num_traces, void **traces, char **syms, int check_debuglink,
char *strtab = file + strtab_shdr->sh_offset;
ElfW(Sym) *symtab = (ElfW(Sym) *)(file + symtab_shdr->sh_offset);
int symtab_count = (int)(symtab_shdr->sh_size / sizeof(ElfW(Sym)));
+#ifdef __powerpc64__
+ kprintf("\n= %s %lx\n",lines[offset].path,lines[offset].base_addr);
+#endif
for (j = 0; j < symtab_count; j++) {
ElfW(Sym) *sym = &symtab[j];
int type = ELF_ST_TYPE(sym->st_info);
intptr_t saddr = (intptr_t)sym->st_value + current_line->base_addr;
if (type != STT_FUNC) continue;
+#ifdef __powerpc64__
+ kprintf("%s %lx %lx\n",strtab + sym->st_name,sym->st_value,sym->st_size);
+#endif
for (i = offset; i < num_traces; i++) {
intptr_t d = (intptr_t)traces[i] - saddr;
if (lines[i].line != -1)
diff --git a/vm_dump.c b/vm_dump.c
index 96eacd80cb..f2d2c3b20f 100644
--- a/vm_dump.c
+++ b/vm_dump.c
@@ -819,15 +819,6 @@ rb_vm_bugreport(void)
fputs("\n", stderr);
}
-#if HAVE_BACKTRACE || defined(_WIN32)
- fprintf(stderr, "-- C level backtrace information "
- "-------------------------------------------\n");
- rb_print_backtrace();
-
-
- fprintf(stderr, "\n");
-#endif /* HAVE_BACKTRACE */
-
if (other_runtime_info || vm) {
fprintf(stderr, "-- Other runtime information "
"-----------------------------------------------\n\n");
@@ -907,5 +898,14 @@ rb_vm_bugreport(void)
fprintf(stderr, "\n");
}
#endif /* __FreeBSD__ */
+#if HAVE_BACKTRACE || defined(_WIN32)
+ fprintf(stderr, "-- C level backtrace information "
+ "-------------------------------------------\n");
+ rb_print_backtrace();
+
+
+ fprintf(stderr, "\n");
+#endif /* HAVE_BACKTRACE */
+
}
}