Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
2 / 2 / 0
Регистрация: 18.09.2009
Сообщений: 107

Создание дампа при ошибке

06.05.2011, 21:11. Показов 2363. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу большое приложение, иногда возникают ошибки и оно падает. Возможно ли сделать чтобы при возникновении ошибки перед падением ещё выполнялась функция записи значений переменных?
Хочу чтобы приложение создавало дамп всех переменных.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.05.2011, 21:11
Ответы с готовыми решениями:

sqlite создание дампа
Суть вопроса такова,- нужно создать дамп существующей базы/таблицы в файл. Ну я конечно понимаю что sqlite можно тупо копирнуть, но всёже...

BSOD и не возможность создание дампа
Приветствую. Проблема такая: Месяца два назад выскочил "синий экран", при игре Rome Totaw War II. После не хитрых манипуляций, BSOD не...

Импорт/создание схемы из дампа
Коллеги, помогите с такой ситуацией: по роду деятельности мало сталкивался с БД, тем более с Oracle, поэтому могу подтупливать. Есть...

10
0 / 0 / 0
Регистрация: 06.05.2011
Сообщений: 14
07.05.2011, 18:09
в гугле Обработка исключений в C++ вроде оно
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
07.05.2011, 21:25
Встроенная в программу печать стека при помощи внешнего отладчика
1
31 / 31 / 3
Регистрация: 10.05.2011
Сообщений: 120
11.05.2011, 03:01
Kadet89, Какой компилятор используете?
Если g++, то Вам нужно посмотреть действительно в сторону исключений:

C++
1
2
3
4
5
6
try
{
}
catch()
{
};
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.05.2011, 16:08
Если приложение падает по аппаратным ошибкам (доступ по неправильному адресу, деление на ноль и т.п.), то такие ситуёвины ловятся через обработчик сигналов. Если происходят программные исключения, то см. пост #4. Но в обоих случаях ты сможешь распечатать только глобальные переменные, потому как активация стека в месте возникновения ошибки уже недоступна
0
31 / 31 / 3
Регистрация: 10.05.2011
Сообщений: 120
11.05.2011, 16:50
Цитата Сообщение от Evg Посмотреть сообщение
Если приложение падает по аппаратным ошибкам (доступ по неправильному адресу, деление на ноль и т.п.), то такие ситуёвины ловятся через обработчик сигналов. Если происходят программные исключения, то см. пост #4. Но в обоих случаях ты сможешь распечатать только глобальные переменные, потому как активация стека в месте возникновения ошибки уже недоступна
Я могу конечно ошибаться (точно не помню) но по моему если происходит деление на 0, то ругается компилятор на этапе компиляции...
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.05.2011, 18:03
Цитата Сообщение от absokolov Посмотреть сообщение
Я могу конечно ошибаться (точно не помню) но по моему если происходит деление на 0, то ругается компилятор на этапе компиляции...
И откуда компилятор в следующем коде узнает, что будет деление на 0?

C
1
2
3
4
int func (int x, int y)
{
  return x / y;
}
0
31 / 31 / 3
Регистрация: 10.05.2011
Сообщений: 120
12.05.2011, 01:19
Цитата Сообщение от Evg Посмотреть сообщение
И откуда компилятор в следующем коде узнает, что будет деление на 0?

C
1
2
3
4
int func (int x, int y)
{
  return x / y;
}
Согласен... не подумал.. был не прав...
0
2 / 2 / 0
Регистрация: 18.09.2009
Сообщений: 107
11.07.2011, 00:30  [ТС]
Ошибки различные... можно ли как-то независимо от типа ошибки сделать чтобы приложение хотябы не выгружалось, а становилось на паузу, чтобы я отладчиком мог подключиться к нему?
В винде например появляется окошко - в нем кнопка "ок", и только после нажатия на нее процесс убивается. А до нажатия можно делать с процессом всё, что угодно, прямо через диспетчер делать дамп, подрубаться отладчиком и смотреть через него память, состояние и всё остальное.
0
31 / 31 / 3
Регистрация: 10.05.2011
Сообщений: 120
11.07.2011, 01:41
Цитата Сообщение от Kadet89 Посмотреть сообщение
Ошибки различные... можно ли как-то независимо от типа ошибки сделать чтобы приложение хотябы не выгружалось, а становилось на паузу, чтобы я отладчиком мог подключиться к нему?
В винде например появляется окошко - в нем кнопка "ок", и только после нажатия на нее процесс убивается. А до нажатия можно делать с процессом всё, что угодно, прямо через диспетчер делать дамп, подрубаться отладчиком и смотреть через него память, состояние и всё остальное.
Ну если при ошибке нужно чтобы приложение спросило разрешение на "смерть", то вариантов много...
Если ОС Линукс, то можно поставить приложение в ожидание получения сигнала! То есть пока сигнал не поступил - ждать и не умирать.. Ну или если доступ прямой к серверу, то подтверждение на смерть можно выполнить с помощью "std::cin"!
Короче нужно отталкиваться от ситуации..
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.07.2011, 12:01
Цитата Сообщение от Kadet89 Посмотреть сообщение
Ошибки различные... можно ли как-то независимо от типа ошибки сделать чтобы приложение хотябы не выгружалось, а становилось на паузу, чтобы я отладчиком мог подключиться к нему?
В винде например появляется окошко - в нем кнопка "ок", и только после нажатия на нее процесс убивается. А до нажатия можно делать с процессом всё, что угодно, прямо через диспетчер делать дамп, подрубаться отладчиком и смотреть через него память, состояние и всё остальное.
См. пост #5. Всё ведь уже написано
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.07.2011, 12:01
Помогаю со студенческими работами здесь

Создание дампа памяти и его чтение
Написал такой вот метод для записи дампа нужного мне процесса. Пишется и читается очень даже не плохо (читаю BinaryReader'ом), но надо...

Создание дампа базы данных (скрипт) - найти ошибку
Здравствуйте! Раскопал скрипт для создания дампа базы MySQL. На локальном сервере работает как надо, у хостера (Beget) вылазит ошибка: ...

Права на пользователя при снятии дампа
Доброго времени суток друзья. Стала задача создать пользователя в табличном пространстве который бы имел права только на снятие дампа...

Множество warning (ов) при загрузке дампа
Добрый. Есть сервер, на нём MySQL 8 (от Sun), в ней база. Обычным: mysqldump -u user -p dbname > date.dbname.sql Снимаю дамп,...

Создание отчета об ошибке
У меня в игре выскакивает сообщение об ошибке. Я написал в тех.поддержку.Вот что они написали. Помогите разобраться. windows 7. 1) In the...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru