blob: 9e11e17cdc79c398457ca168b5e7ad87a8f5be3b [file] [log] [blame]
/* -*- Mode: C; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */
#include "util.h"
#define NUM_ITERATIONS (1 << 27)
static void breakpoint(void) {
int break_here = 1;
(void)break_here;
}
static int spin(void) {
int i, dummy = 0;
atomic_puts("spinning");
for (i = 1; i < 1 << 28; ++i) {
dummy += i % (1 << 20);
dummy += i % (79 * (1 << 20));
}
return dummy;
}
/**
* We'll break in do_thread, continue until SIGKILL, and
* then try a reverse-stepi. This will have to search back through
* several checkpoints to find the last completed singlestep for
* the thread.
*/
static void* do_thread(__attribute__((unused)) void* p) {
char ch;
breakpoint();
/* Will never return */
read(STDIN_FILENO, &ch, 1);
return NULL;
}
int main(void) {
pthread_t thread;
signal(SIGTTIN, SIG_IGN);
pthread_create(&thread, NULL, do_thread, NULL);
spin();
atomic_puts("EXIT-SUCCESS");
return 0;
}