Подскажите куда копать....(сигнал SIGABRT) |
Здравствуйте, гость ( Вход | Регистрация )
Подскажите куда копать....(сигнал SIGABRT) |
BRE |
14.1.2010, 18:43
Сообщение
#21
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Почитай про сигналы и их обработку в linux:
man signal Сейчас нет возможности посмотреть исходники, думаю завтра получиться, но рекомендую добавить функции подробного логирования (хорошо помогает отлаживать такие ошибки). |
|
|
Skier78rus |
15.1.2010, 12:41
Сообщение
#22
|
Студент Группа: Новичок Сообщений: 14 Регистрация: 13.1.2010 Пользователь №: 1368 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо.
Прочитал про сигналы, поправьте, если я ошибаюсь, но есть два типа сигналов, первые это сигналы QT, которые легко перехватываються и обрабатываються. И второй тип это сигналы ядра Linux, типо SIGABRT, которые тоже можно самому перехватить, но я не понял как.... А функции подробного логирования это qDebug и тому подобное из библиотеки TestLib??? |
|
|
BRE |
15.1.2010, 12:49
Сообщение
#23
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Прочитал про сигналы, поправьте, если я ошибаюсь, но есть два типа сигналов, первые это сигналы QT, которые легко перехватываються и обрабатываються. И второй тип это сигналы ядра Linux, типо SIGABRT, которые тоже можно самому перехватить, но я не понял как.... http://www.opennet.ru/cgi-bin/opennet/man....&category=2 А функции подробного логирования это qDebug и тому подобное из библиотеки TestLib??? Можно просто писать в файл то, что программа делает в данный момент, а можно использовать и qDebug. Посмотри еще на эту функцию, она поможет переопределить весь вывод от qDebug в файл: QtMsgHandler qInstallMsgHandler ( QtMsgHandler handler ) |
|
|
azure |
15.1.2010, 14:58
Сообщение
#24
|
Студент Группа: Участник Сообщений: 60 Регистрация: 24.12.2009 Пользователь №: 1332 Спасибо сказали: 5 раз(а) Репутация: 0 |
Вот в том-то и проблемма.....я не знаю способов перехватить ексепшен, кроме как try cath, который не ловит ничего...... вероятно, в этом месте ексепшенов не происходит. смоделируйте ситуацию с ексепшеном и словити её. try\catch - это свойство языка, оно обязано быть реализовано во всех компиляторах с++. |
|
|
Skier78rus |
16.1.2010, 3:11
Сообщение
#25
|
Студент Группа: Новичок Сообщений: 14 Регистрация: 13.1.2010 Пользователь №: 1368 Спасибо сказали: 0 раз(а) Репутация: 0 |
Прочитал про сигналы, поправьте, если я ошибаюсь, но есть два типа сигналов, первые это сигналы QT, которые легко перехватываються и обрабатываються. И второй тип это сигналы ядра Linux, типо SIGABRT, которые тоже можно самому перехватить, но я не понял как.... http://www.opennet.ru/cgi-bin/opennet/man....&category=2 А функции подробного логирования это qDebug и тому подобное из библиотеки TestLib??? Можно просто писать в файл то, что программа делает в данный момент, а можно использовать и qDebug. Посмотри еще на эту функцию, она поможет переопределить весь вывод от qDebug в файл: QtMsgHandler qInstallMsgHandler ( QtMsgHandler handler ) Спасибо Буду копать... |
|
|
Текстовая версия | Сейчас: 23.4.2024, 12:11 |