/** @return 1 if breakpoint occured */ IMPLEMENT int Jdb_bp::test_break(String_buffer *buf) { Mword dr6 = read_debug_register(6); if (!(dr6 & Val_test)) return 0; int ret = test_break(buf, dr6); write_debug_register(6, dr6 & ~Val_test); return ret; }
/** @return 1 if breakpoint occured */ IMPLEMENT int Jdb_bp::test_break(char *errbuf, size_t bufsize) { Mword dr6 = read_debug_register(6); if (!(dr6 & Val_test)) return 0; int ret = test_break(dr6, errbuf, bufsize); write_debug_register(6, dr6 & ~Val_test); return ret; }
/** @return 1 if breakpoint occured */ IMPLEMENT int Jdb_bp::test_break(char *errbuf, size_t bufsize) { Space *t = Jdb::get_thread(0)->space(); Mword dr6 = read_debug_register(6, t); if (!(dr6 & 0x000000f)) return 0; test_break(dr6, errbuf, bufsize); write_debug_register(6, dr6 & ~0x0000000f, t); return 1; }
int main(int argc, char **argv) { bool good = true; srand(time(NULL)); if (argc < 2) { if (generate_data(RANDOM_SIZE)) goto exit_no_mem; } else { if (read_data(argv[1])) goto exit_bad_input; } good = good && test_init() == 0; good = good && test_append() == 0; good = good && test_duplicate() == 0; good = good && test_links() == 0; good = good && test_prepend() == 0; good = good && test_links() == 0; good = good && test_concat() == 0; good = good && test_links() == 0; good = good && test_break() == 0; good = good && test_links() == 0; good = good && test_insert() == 0; good = good && test_links() == 0; good = good && test_compare() == 0; good = good && test_delete() == 0; good = good && test_links() == 0; good = good && test_clear() == 0; good = good && test_free() == 0; cleanup_data(); return good?EXIT_SUCCESS:EXIT_FAILURE; exit_bad_input: exit_no_mem: cleanup_data(); return EXIT_FAILURE; }