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 */ + } }