ebaddr()/dbaddr() commands for enabling/disabling breakpoints at address

This commit is contained in:
kamkow1
2025-03-13 14:09:24 +01:00
parent 4f60dfcd4d
commit 7a5980de69

View File

@@ -632,6 +632,34 @@ void dbg_js_help(js_State *js)
js_pushundefined(js); js_pushundefined(js);
} }
void dbg_js_ebaddr(js_State *js)
{
Dbg *dbg = getdbg();
const char *addr_str = js_tostring(js, 1);
Brk *brk = (Brk *)hashtable_get(&dbg->brks, addr_str);
if (brk == NULL) {
LOG_ERR("No breakpoint at address: %s\n", addr_str);
goto done;
}
brk_enable(brk);
done:
js_pushundefined(js);
}
void dbg_js_dbaddr(js_State *js)
{
Dbg *dbg = getdbg();
const char *addr_str = js_tostring(js, 1);
Brk *brk = (Brk *)hashtable_get(&dbg->brks, addr_str);
if (brk == NULL) {
LOG_ERR("No breakpoint at address: %s\n", addr_str);
goto done;
}
brk_disable(brk);
done:
js_pushundefined(js);
}
void dbg_init_js(Dbg *dbg) void dbg_init_js(Dbg *dbg)
{ {
dbg->js = js_newstate(NULL, NULL, JS_STRICT); dbg->js = js_newstate(NULL, NULL, JS_STRICT);
@@ -662,6 +690,8 @@ void dbg_init_js(Dbg *dbg)
make_js_func(lsf, 0, "List functions in executable, ARGS=None"); make_js_func(lsf, 0, "List functions in executable, ARGS=None");
make_js_func(bfn, 1, "Set breakpoint at function, ARGS=Function name:string"); make_js_func(bfn, 1, "Set breakpoint at function, ARGS=Function name:string");
make_js_func(rmbfn, 1, "Remove breakpoint at function, ARGS=Function name:string"); make_js_func(rmbfn, 1, "Remove breakpoint at function, ARGS=Function name:string");
make_js_func(ebaddr, 1, "Enable breakpoint at address, ARGS=Address:hex string");
make_js_func(dbaddr, 1, "Disable breakpoint at address, ARGS=Address:hex string");
#undef make_js_func #undef make_js_func
} }