Esempio n. 1
0
int remove_bp(libgdbr_t* g, uint64_t address, enum Breakpoint type) {
	char tmp[255] = {};
	int ret = 0;
	switch (type) {
		case BREAKPOINT:
			ret = snprintf (tmp, 255, "%s,%lx,1", CMD_RBP, address);
			break;
		case HARDWARE_BREAKPOINT:
			ret = snprintf (tmp, 255, "%s,%lx,1", CMD_RHBP, address);
			break;
		case WRITE_WATCHPOINT:
			break;
		case READ_WATCHPOINT:
			break;
		case ACCESS_WATCHPOINT:
			break;
		default:
			break;
	}
	if (ret < 0) return ret;
	ret = send_command (g, tmp);
	if (ret < 0) return ret;

	if (read_packet (g) > 0) {
		parse_packet (g, 0);
		return handle_removebp (g);
	}
	return 0;
}
Esempio n. 2
0
File: core.c Progetto: Xxmmy/radare2
int remove_bp(libgdbr_t *g, ut64 address, enum Breakpoint type) {
	char tmp[255] = {0};
	int ret = -1;
	if (!g) {
		return -1;
	}
	switch (type) {
	case BREAKPOINT:
		ret = snprintf (tmp, sizeof (tmp) - 1, "%s,%"PFMT64x ",1", CMD_RBP, address);
		break;
	case HARDWARE_BREAKPOINT:
		ret = snprintf (tmp, sizeof (tmp) - 1, "%s,%"PFMT64x ",1", CMD_RHBP, address);
		break;
	case WRITE_WATCHPOINT:
		break;
	case READ_WATCHPOINT:
		break;
	case ACCESS_WATCHPOINT:
		break;
	default:
		break;
	}
	if (ret < 0) {
		return ret;
	}
	ret = send_msg (g, tmp);
	if (ret < 0) {
		return ret;
	}
	if (read_packet (g) >= 0) {
		return handle_removebp (g);
	}
	return 0;
}