#include <dlfcn.h>
#include <stdio.h>
#include <thread>
#include <unistd.h>
void f1() {
while (1)
sleep(1);
}
void f2() {
while (1)
sleep(1);
}
void f3() {
while (1)
sleep(1);
}
int main() {
std::thread t1{f1};
std::thread t2{f2};
std::thread t3{f3};
puts("break here");
void *handle = dlopen("libfoo.dylib", RTLD_LAZY);
int (*foo_ptr)() = (int (*)())dlsym(handle, "foo");
int c = foo_ptr();
// clang-format off
// multiple function calls on a single source line so 'step'
// and 'next' need to do multiple steps of work.
puts("1"); puts("2"); puts("3"); puts("4"); puts("5");
puts("6"); puts("7"); puts("8"); puts("9"); puts("10");
puts("11"); puts("12"); puts("13"); puts("14"); puts("15");
puts("16"); puts("17"); puts("18"); puts("19"); puts("20");
puts("21"); puts("22"); puts("23"); puts("24"); puts("24");
// clang-format on
puts("one");
puts("two");
puts("three");
puts("four");
puts("five");
puts("six");
puts("seven");
puts("eight");
puts("nine");
puts("ten");
c++;
c++;
c++;
c++;
c++;
c++;
c++;
c++;
c++;
c++;
c++;
c++;
return c;
}