Beispiel #1
0
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;
}
Beispiel #2
0
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;
}