Форум — Development Сбросить корку по SEGINT 1 1 Сабж. Иногда хочется сбросить корку по Ctrl+C. Можно как-то реализовать? Ссылка
Можно поделить себя на 0 в signal handler'е? Достаточно будет? UVV ★★★★★ (06.11.13 18:44:25 MSK) автор топика Показать ответы Ссылка
Ответ на: комментарий от UVV 06.11.13 18:44:25 MSK Сделай тогда это хотя бы с помощью kill anonymous (06.11.13 18:53:58 MSK) Ссылка
Ответ на: комментарий от UVV 06.11.13 18:44:25 MSK А почему бы просто не вызвать в обработчике abort? theNamelessOne ★★★★★ (06.11.13 19:18:47 MSK) Показать ответ Ссылка
#include <stdio.h> #include <unistd.h> #include <signal.h> #include <string.h> #include <stdlib.h> #include <sys/time.h> #include <sys/resource.h> void h(int a) { struct rlimit nolimit = {RLIM_INFINITY, RLIM_INFINITY}; printf("SIGINT\n"); setrlimit(RLIMIT_CORE, &nolimit); abort(); } int main(void) { struct sigaction sa; memset(&sa, 0, sizeof(sa)); sa.sa_handler = h; sigaction(SIGINT, &sa, NULL); while (1) { printf("tick\n"); sleep(1); } return 0; } i-rinat ★★★★★ (06.11.13 19:24:49 MSK) Ссылка
Ответ на: комментарий от theNamelessOne 06.11.13 19:18:47 MSK Ну а если ты не хочешь, чтобы при этом программа завершалась, то можно сделать форк:#include <stdio.h> #include <signal.h> #include <stdlib.h> #include <unistd.h> void sigint_handler(int dummy) { pid_t pid = fork(); if(pid == 0) { signal(SIGABRT, SIG_DFL); abort(); } else { waitpid(pid, NULL, 0); fputs("Core dumped\n", stderr); } } theNamelessOne ★★★★★ (06.11.13 19:27:56 MSK) Ссылка
Ещё такая штука нагуглилась: http://code.google.com/p/google-coredumper/ theNamelessOne ★★★★★ (06.11.13 19:29:28 MSK) Показать ответ Ссылка
Ответ на: комментарий от theNamelessOne 06.11.13 19:29:28 MSK system( «gcore » + tostring( getpid() ) ); anonymous (06.11.13 19:38:49 MSK) Показать ответ Ссылка
Ответ на: комментарий от anonymous 06.11.13 19:38:49 MSK Вариант. theNamelessOne ★★★★★ (06.11.13 20:03:11 MSK) Ссылка
Ответ на: комментарий от UVV 06.11.13 18:44:25 MSK можно воспользоваться вызовом raise() anonymous (07.11.13 08:47:18 MSK) Ссылка