powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Можно ли узнать из за какого потока было убито приложение?
25 сообщений из 55, страница 1 из 3
Можно ли узнать из за какого потока было убито приложение?
    #34296045
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересует linux.

Если происходит критическая ошибка, то приложение вываливается с Killed. Как можно узнать из-за какого pid это произошло. Опции компиляци? Средства?
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34296080
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кто узнавать будет ?
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34296185
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)кто узнавать будет ?

Я узнавать буду где у меня глючит.
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34296422
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhИнтересует linux.

Если происходит критическая ошибка, то приложение вываливается с Killed. Как можно узнать из-за какого pid это произошло. Опции компиляци? Средства?

Посмотрите man ptrace, wait, waitpid .

По контексту вопроса не ясно , что используестя fork или pthread_create.

ptrace должен помочь, но не благодарное это дело писать свой дебагер.
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34296508
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat- AkhИнтересует linux.

Если происходит критическая ошибка, то приложение вываливается с Killed. Как можно узнать из-за какого pid это произошло. Опции компиляци? Средства?

Посмотрите man ptrace, wait, waitpid .

По контексту вопроса не ясно , что используестя fork или pthread_create.

ptrace должен помочь, но не благодарное это дело писать свой дебагер.

pthread_create

Вот именно, что свой дебагер не благодарное дело писать.

Я не пойму, почему когда приложение убивается не пишется причина, или хотябы источник причины (pid из за которого произошла смерть). Может как-то это можно "включить"?
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34296627
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh onstat- AkhИнтересует linux.

Если происходит критическая ошибка, то приложение вываливается с Killed. Как можно узнать из-за какого pid это произошло. Опции компиляци? Средства?

Посмотрите man ptrace, wait, waitpid .

По контексту вопроса не ясно , что используестя fork или pthread_create.

ptrace должен помочь, но не благодарное это дело писать свой дебагер.

pthread_create

Вот именно, что свой дебагер не благодарное дело писать.

Я не пойму, почему когда приложение убивается не пишется причина, или хотябы источник причины (pid из за которого произошла смерть). Может как-то это можно "включить"?

GDB должен строчку говорить где это произошло.
Ну а дальше по обстоятельствам.
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34296731
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-GDB должен строчку говорить где это произошло.
Ну а дальше по обстоятельствам.

Он нормально тянет много-(в районе десятка)-потоковое приложение?
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34296979
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhЯ не пойму, почему когда приложение убивается не пишется причина, или хотябы источник причины (pid из за которого произошла смерть). Может как-то это можно "включить"?хочешь сделать красивое окошечко «отправить ачот в микросакс»?
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34297055
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh onstat-GDB должен строчку говорить где это произошло.
Ну а дальше по обстоятельствам.

Он нормально тянет много-(в районе десятка)-потоковое приложение?

Если чесно, не знаю.
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34297168
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat- Akh onstat-GDB должен строчку говорить где это произошло.
Ну а дальше по обстоятельствам.

Он нормально тянет много-(в районе десятка)-потоковое приложение?

Если чесно, не знаю.

ОК. Напорюсь еще раз на глюки обязательно попробую.
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34297379
A. Fig Lee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая разница, он же core будет смотреть - труп программы (gdb)
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34298153
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A. Fig LeeКакая разница, он же core будет смотреть - труп программы (gdb)

Это мне даст информацию о потоке?
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34299785
A. Fig Lee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh A. Fig LeeКакая разница, он же core будет смотреть - труп программы (gdb)

Это мне даст информацию о потоке?


где здесь:

Akh
Он нормально тянет много-(в районе десятка)-потоковое приложение?

про информацию о потоке?
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34299823
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A. Fig Lee Akh A. Fig LeeКакая разница, он же core будет смотреть - труп программы (gdb)

Это мне даст информацию о потоке?


где здесь:

Akh
Он нормально тянет много-(в районе десятка)-потоковое приложение?

про информацию о потоке?

Свалится не дойдя до "нужного" места.
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34299837
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собсна, прошу по теме, без под%%%ок, если я правельно понял Афигли.
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34300305
A. Fig Lee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhСобсна, прошу по теме, без под%%%ок, если я правельно понял Афигли.

если смотреть core - где там потоки? Ето мемори и стек дамп. Потоки когда живую программу дебагишь.
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34300361
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A. Fig Lee AkhСобсна, прошу по теме, без под%%%ок, если я правельно понял Афигли.

если смотреть core - где там потоки? Ето мемори и стек дамп. Потоки когда живую программу дебагишь.

Hint: Некоторое количество стеков( по количеству нитей на момент падения).
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34300397
A. Fig Lee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat- A. Fig Lee AkhСобсна, прошу по теме, без под%%%ок, если я правельно понял Афигли.

если смотреть core - где там потоки? Ето мемори и стек дамп. Потоки когда живую программу дебагишь.

Hint: Некоторое количество стеков( по количеству нитей на момент падения).

и что? он "поймет" если их 2, но "не поймет" - если 10?
Вопрос то был - потянет ли gdb 10 потоков?
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34301071
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой менеджер потоки/процессы убивает?
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34301348
!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
!
Гость
AkhА какой менеджер потоки/процессы убивает?

ядро.

man kill
man signal
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34301577
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
! AkhА какой менеджер потоки/процессы убивает?

ядро.

man kill
man signal

Пошутил что ли? Ясное дело, что не mc.

Когда убивается поток, то в текущую консоль выкидывается сообщение, что он убит. Кто кидет это сообщение? Мененджер потоков? Как его зовут? Где в ядре он находится?

Так постоновка понятна?
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34301694
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh ! AkhА какой менеджер потоки/процессы убивает?

ядро.

man kill
man signal

Пошутил что ли? Ясное дело, что не mc.

Когда убивается поток, то в текущую консоль выкидывается сообщение, что он убит. Кто кидет это сообщение? Мененджер потоков? Как его зовут? Где в ядре он находится?

Так постоновка понятна?

Процесс родитель ловит сигнал SIGCHLD в обработчике делает wait | waitpid
которые вычитывают причины завершения процесса из структур ядра.

man 7 signal
Signal Value Action Comment
-------------------------------------------------------------
SIGCHLD 20,17,18 Ign Child stopped or terminated


Обрати внимание, что по умолчанию он игнорируется.
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34301842
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-
Процесс родитель ловит сигнал SIGCHLD в обработчике делает wait | waitpid
которые вычитывают причины завершения процесса из структур ядра.

man 7 signal
Signal Value Action Comment
-------------------------------------------------------------
SIGCHLD 20,17,18 Ign Child stopped or terminated


Обрати внимание, что по умолчанию он игнорируется.

Не канает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
void *f(void *) {
    char *p= 0 ;

    printf("Child pid=%d\n", getpid());
    (*p)= 5 ;

    return NULL;
};

void fsig(int sig) {
    int pid;
    int status;

    printf("Signal %d\n", sig);
    pid=wait(&status);
    printf("%d(pid) exited.\n", pid);
}

int main () {
    printf("Main pid=%d\n", getpid());

    if (SIG_ERR==signal(SIGCHLD, fsig)) {
        printf("Signal error!\n");
        exit(- 1 );
    };

    pthread_t t;
    pthread_create(&t, NULL, f, NULL);
    sleep( 1 );

    return  0 ;
}


автор
Main pid=4072
Child pid=4074
Killed
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34301903
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh

Не канает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
.....................................
void fsig(int sig) {
    int pid;
    int status;

    printf("Signal %d\n", sig);
    pid=wait(&status);
    printf("%d(pid) exited.\n", pid);
}

.......................
    pthread_t t;
    pthread_create(&t, NULL, f, NULL);
............
}


[quot автор]
Main pid=4072
Child pid=4074
Killed


Издеваешься?
Или лень дочитать до конца?

man 2 wait
In the Linux kernel, a kernel-scheduled thread is not a distinct con-
struct from a process. Instead, a thread is simply a process that is
created using the Linux-unique clone(2) system call; other routines
such as the portable pthread_create(3) call are implemented using
clone(2). Before Linux 2.4, a thread was just a special case of a
process, and as a consequence one thread could not wait on the chil-
dren of another thread, even when the latter belongs to the same
thread group. However, POSIX prescribes such functionality, and since
Linux 2.4 a thread can, and by default will, wait on children of other
threads in the same thread group.

The following Linux-specific options are for use with children created
using clone(2).



з.ы. Сам я это еще не пробовал.
...
Рейтинг: 0 / 0
Можно ли узнать из за какого потока было убито приложение?
    #34302045
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже я не прав с последним постом.
Вероятнее всего, что процесс со всеми нитями прибивается целяком,
и перехваты просто не успевают отработать.
...
Рейтинг: 0 / 0
25 сообщений из 55, страница 1 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Можно ли узнать из за какого потока было убито приложение?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]