don't print function name in dbg_handle_sigsegv()
This commit is contained in:
24
debugus.c
24
debugus.c
@@ -249,24 +249,12 @@ void dbg_handle_sigsegv(Dbg *dbg, siginfo_t info)
|
||||
uint64_t dbg_get_rip(Dbg *dbg);
|
||||
LOG_ERR("Caught a segfault %d. SKILL ISSUE BRO\n", info.si_code);
|
||||
uintptr_t rip = (uintptr_t)dbg_get_rip(dbg);
|
||||
uintptr_t nearest = UINTPTR_MAX;
|
||||
for (int i = 0; i < dbg->funcs.count; i++) {
|
||||
if (dbg->funcs.items[i].ai != NULL && rip - dbg->funcs.items[i].ai->addr < nearest) {
|
||||
nearest = rip - dbg->funcs.items[i].ai->addr;
|
||||
}
|
||||
}
|
||||
uintptr_t addr = rip - nearest;
|
||||
for (int i = 0; i < dbg->funcs.count; i++) {
|
||||
if (dbg->funcs.items[i].ai != NULL && dbg->funcs.items[i].ai->addr == addr) {
|
||||
Func *f = &dbg->funcs.items[i];
|
||||
LOG_INF("%s:%zu in function %s()\n", f->ai->file, (size_t)f->ai->line, f->name);
|
||||
AddrInfo *ai2 = libelfin_wrap_info_from_rip(dbg->plibelfin, (uint64_t)(rip - dbg->program_load_offset));
|
||||
if (ai2 != NULL) {
|
||||
print_source(ai2->file, ai2->line);
|
||||
libelfin_wrap_free_info(ai2);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
AddrInfo *ai = libelfin_wrap_info_from_rip(dbg->plibelfin, (uint64_t)(rip - dbg->program_load_offset));
|
||||
if (ai != NULL) {
|
||||
print_source(ai->file, ai->line);
|
||||
libelfin_wrap_free_info(ai);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user