diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-03-04 20:15:40 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-03-04 20:15:40 +0100 |
| commit | dd60e17835b737ac4df386c59b31c309ee2d97e1 (patch) | |
| tree | 9d84a156f1672f1f3892a17a7d196815bcc464f1 /src | |
| parent | aad680d61d04a68e816fef1c79c1067718e25f65 (diff) | |
| download | box64-dd60e17835b737ac4df386c59b31c309ee2d97e1.tar.gz box64-dd60e17835b737ac4df386c59b31c309ee2d97e1.zip | |
Improve function name in trace a bit
Diffstat (limited to 'src')
| -rwxr-xr-x | src/emu/x64run_private.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/emu/x64run_private.c b/src/emu/x64run_private.c index 3265386b..c7dac588 100755 --- a/src/emu/x64run_private.c +++ b/src/emu/x64run_private.c @@ -957,14 +957,21 @@ const char* getAddrFunctionName(uintptr_t addr) static char ret[1000]; uint64_t sz = 0; uintptr_t start = 0; - const char* symbname = FindNearestSymbolName(FindElfAddress(my_context, addr), (void*)addr, &start, &sz); + elfheader_t* elf = FindElfAddress(my_context, addr); + const char* symbname = FindNearestSymbolName(elf, (void*)addr, &start, &sz); if(symbname && addr>=start && (addr<(start+sz) || !sz)) { - if(addr==start) - sprintf(ret, "%s:%s", ElfName(FindElfAddress(my_context, addr)), symbname); + if(symbname[0]=='\0') + sprintf(ret, "%s + 0x%x", ElfName(elf), addr - (uintptr_t)GetBaseAddress(elf)); + else if(addr==start) + sprintf(ret, "%s/%s", ElfName(elf), symbname); else - sprintf(ret, "%s:%s + %ld", ElfName(FindElfAddress(my_context, addr)), symbname, addr - start); - } else - sprintf(ret, "???"); + sprintf(ret, "%s/%s + %d", ElfName(elf), symbname, addr - start); + } else { + if(elf) { + sprintf(ret, "%s + 0x%x", ElfName(elf), addr - (uintptr_t)GetBaseAddress(elf)); + } else + sprintf(ret, "???"); + } return ret; } |