int main(int argc, char **argv) { pthread_t thr; pthread_attr_t attr; fprintf(stderr,"crasher: " __TIME__ "!@\n"); fprintf(stderr,"crasher: init pid=%d tid=%d\n", getpid(), gettid()); if(argc > 1) { if(!strcmp(argv[1],"nostack")) crashnostack(); if(!strcmp(argv[1],"ctest")) return ctest(); if(!strcmp(argv[1],"exit")) exit(1); if(!strcmp(argv[1],"abort")) maybeabort(); pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); pthread_create(&thr, &attr, test_thread, 0); while(1) sleep(1); } else { crash1(); // *((int*) 0) = 42; } return 0; }
int main(int argc, char **argv) { fprintf(stderr, "%s: built at " __TIME__ "!@\n", __progname); #if defined(STATIC_CRASHER) debuggerd_callbacks_t callbacks = { .get_abort_message = []() { static struct { size_t size; char msg[32]; } msg; msg.size = strlen("dummy abort message"); memcpy(msg.msg, "dummy abort message", strlen("dummy abort message")); return reinterpret_cast<abort_msg_t*>(&msg); }, .post_dump = nullptr }; debuggerd_init(&callbacks); #endif if (argc > 1) { return do_action(argv[1]); } else { crash1(); } return 0; }
int main(int argc, char **argv) { fprintf(stderr,"crasher: built at " __TIME__ "!@\n"); if(argc > 1) { return do_action(argv[1]); } else { crash1(); } return 0; }
int _tmain(int argc, TCHAR* argv[]) { crash1(); return 0; }
static void crash2 () { crash1 (); }