powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / g++ & gdb
7 сообщений из 7, страница 1 из 1
g++ & gdb
    #34987262
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно отловить багу с Segmentation fault , в момент падения память занятая программой может занимать около Гигабайта.

Подскажите каким образом можно не выгружать программу из памяти после падения
и по факту падения натравить на нее gdb с командой ( для начала хотя бы bt ).

Ссылки по теме приветствуются.
Спасибо.
...
Рейтинг: 0 / 0
g++ & gdb
    #34989812
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну например:
запускать проблемную программу сразу через gdb

подключать gdb к уже запущенной программе ещё до падения и продолжать её исполнение

написать обработчик сигнала SIGSEGV в программе, в котором подключать gdb к программе


--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
g++ & gdb
    #34992680
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёшну например:
написать обработчик сигнала SIGSEGV в программе, в котором подключать gdb к программе



Спасибо, если это заработает будет то, что нужно.
1. Вполне может получиться что пока форкнутый gdb будет раздупляться,
отлаживать будет уже нечего.
2. Я могу получить и вероятнее всего получу стек с обработчиком, а мне нужно вычислить
функцию( стек вызовов) в при котором происходит падение.
Пока незнаю как там происходит обработка сигнала,
вереоятнее всего через longjmp, и у меня может оказаться совсем другой стек, который мне не интересен.


За идеи спасибо, буду пробовать.
...
Рейтинг: 0 / 0
g++ & gdb
    #34992703
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что дождаться падения core не судьба? Там-то стек точно будет
...
Рейтинг: 0 / 0
g++ & gdb
    #34995661
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedА что дождаться падения core не судьба? Там-то стек точно будетнасколько я понял - у топикстартера проблема в том, что core занимает много места (около гига)

ps: да.. походу в обработчике сигнала backtrace потерян для gdb... попробовал сейчас у себя такой обработчик:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
void sig_attach_gdb_handler(int n)
{
  cerr << "SIG " << n << endl;
  char buf[ 128 ];

  snprintf(buf, sizeof(buf), "gdb --eval-command='bt' -p %d", getpid());

  system(buf);

  cerr << "SIG handler " << n << " abort process " << endl;

  abort();
}
. . .
  signal(SIGSEGV, sig_attach_gdb_handler);
выдаёт:
Код: plaintext
1.
2.
3.
Loaded symbols for /lib/ld-linux.so.2
Failed to read a valid object file image from memory.
0xb7f96410 in ?? ()
#0  0xb7f96410 in ?? ()
хотя возможно отсутствие backtrace у меня связано именно с "Failed to read a valid object file image from memory." это ошибка исправленная в новых версиях ядра (я не обновлялся и пока не собираюсь в принципе... :))
...
Рейтинг: 0 / 0
g++ & gdb
    #34995662
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-, почему Вам сразу бы не запустить программу под gdb ? это imho самое простое в данной ситуации: gdb --eval-command='run' ./test1

--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери
...
Рейтинг: 0 / 0
g++ & gdb
    #34997414
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёшonstat-, почему Вам сразу бы не запустить программу под gdb ? это imho самое простое в данной ситуации: gdb --eval-command='run' ./test1

--
„Истина — это вовсе не то, что можно убедительно доказать, это то, что
делает всё проще и понятнее“ — Антуан де Сент-Экзюпери


Эта программа запускается другой программой,
в возможности ее запуска из под gdb есть административные ограничения которые сейчас решаются.

з.ы. Проблема была в изменении некоторых спецификаций обмена на лету.
Место падения локализовано анализом коры.

Спасибо за ответы.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / g++ & gdb
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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