Add lsf() command to list all functions
This commit is contained in:
@@ -11,6 +11,7 @@ var offset = "0x0000000000001169"; // dupa(), objdump -d ./test
|
||||
// pplo();
|
||||
baddr(offset);
|
||||
lsbrk();
|
||||
lsf();
|
||||
|
||||
// lif("1 --------------------------------------------");
|
||||
// dr();
|
||||
|
||||
@@ -11,6 +11,7 @@ var offset = "@DUPA_ADDR"; // dupa(), objdump -d ./test
|
||||
// pplo();
|
||||
baddr(offset);
|
||||
lsbrk();
|
||||
lsf();
|
||||
|
||||
// lif("1 --------------------------------------------");
|
||||
// dr();
|
||||
|
||||
19
debugus.c
19
debugus.c
@@ -401,6 +401,19 @@ void dbg_js_lsbrk(js_State *js)
|
||||
js_pushundefined(js);
|
||||
}
|
||||
|
||||
void dbg_js_lsf(js_State *js)
|
||||
{
|
||||
Dbg *dbg = getdbg();
|
||||
for (int i = 0; i < dbg->symbols.count; i++) {
|
||||
Symbol *s = &dbg->symbols.items[i];
|
||||
AddrInfo *ai = libelfin_wrap_info_from_rip(dbg->plibelfin, (uint64_t)(s->addr - dbg->program_load_offset));
|
||||
if (ai != NULL) {
|
||||
LOG_INF("Sym %s 0x%"PRIxPTR" %s:%zu\n", s->name, s->addr, ai->file, (size_t)ai->line);
|
||||
libelfin_wrap_free_info(ai);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void dbg_js_lif(js_State *js)
|
||||
{
|
||||
const char *str = js_tostring(js, 1);
|
||||
@@ -524,6 +537,7 @@ void dbg_init_js(Dbg *dbg)
|
||||
make_js_func(mrd, 1, "Read memory at address, ARGS=Address:hex string");
|
||||
make_js_func(mwr, 2, "Write memory at address, ARGS=Address:hex string,Value:hex string");
|
||||
make_js_func(help, 0, "Print help information, ARGS=None");
|
||||
make_js_func(lsf, 0, "List functions in executable, ARGS=None");
|
||||
|
||||
#undef make_js_func
|
||||
}
|
||||
@@ -585,11 +599,6 @@ void dbg_libelfin_wrap_init(Dbg *dbg)
|
||||
void dbg_load_symbols(Dbg *dbg)
|
||||
{
|
||||
libelfin_wrap_get_syms(dbg->plibelfin, &dbg->symbols);
|
||||
|
||||
for (int i = 0; i < dbg->symbols.count; i++) {
|
||||
Symbol *s = &dbg->symbols.items[i];
|
||||
LOG_INF("Found symbol %s 0x%"PRIxPTR"\n", s->name, s->addr);
|
||||
}
|
||||
}
|
||||
|
||||
void dbg_init(Dbg *dbg, const char *file, pid_t pid)
|
||||
|
||||
Reference in New Issue
Block a user