static int r_debug_gdb_breakpoint (RBreakpointItem *bp, int set, void *user) { int ret; if (!bp) return false; // TODO handle rwx and conditions if (set) ret = bp->hw? gdbr_set_hwbp (desc, bp->addr, ""): gdbr_set_bp (desc, bp->addr, ""); else ret = bp->hw? gdbr_remove_hwbp (desc, bp->addr): gdbr_remove_bp (desc, bp->addr); return !ret; }
static int r_debug_gdb_breakpoint (void *user, int type, ut64 addr, int hw, int rwx){ int ret = 0; // TODO handle rwx and conditions if (type == R_FALSE) { // set bp if (hw) { ret = gdbr_set_hwbp (desc, addr, ""); } else { ret = gdbr_set_bp (desc, addr, ""); } } else { // unset bp if (hw) { ret = gdbr_remove_hwbp (desc, addr); } else { ret = gdbr_remove_bp (desc, addr); } } if (ret) return R_FALSE; return R_TRUE; }