ebaddr()/dbaddr() commands for enabling/disabling breakpoints at address
This commit is contained in:
30
debugus.c
30
debugus.c
@@ -632,6 +632,34 @@ void dbg_js_help(js_State *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)
|
||||
{
|
||||
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(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(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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user