Здравствуйте, гость ( Вход | Регистрация )
Skier78rus | Дата 16.1.2010, 3:11 |
Прочитал про сигналы, поправьте, если я ошибаюсь, но есть два типа сигналов, первые это сигналы 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 |
Вот в том-то и проблемма.....я не знаю способов перехватить ексепшен, кроме как try cath, который не ловит ничего...... вероятно, в этом месте ексепшенов не происходит. смоделируйте ситуацию с ексепшеном и словити её. try\catch - это свойство языка, оно обязано быть реализовано во всех компиляторах с++. |
|
BRE | Дата 15.1.2010, 12:49 |
Прочитал про сигналы, поправьте, если я ошибаюсь, но есть два типа сигналов, первые это сигналы QT, которые легко перехватываються и обрабатываються. И второй тип это сигналы ядра Linux, типо SIGABRT, которые тоже можно самому перехватить, но я не понял как.... http://www.opennet.ru/cgi-bin/opennet/man....&category=2 А функции подробного логирования это qDebug и тому подобное из библиотеки TestLib??? Можно просто писать в файл то, что программа делает в данный момент, а можно использовать и qDebug. Посмотри еще на эту функцию, она поможет переопределить весь вывод от qDebug в файл: QtMsgHandler qInstallMsgHandler ( QtMsgHandler handler ) |
|
Skier78rus | Дата 15.1.2010, 12:41 |
Спасибо. Прочитал про сигналы, поправьте, если я ошибаюсь, но есть два типа сигналов, первые это сигналы QT, которые легко перехватываються и обрабатываються. И второй тип это сигналы ядра Linux, типо SIGABRT, которые тоже можно самому перехватить, но я не понял как.... А функции подробного логирования это qDebug и тому подобное из библиотеки TestLib??? |
|
BRE | Дата 14.1.2010, 18:43 |
Почитай про сигналы и их обработку в linux: man signal Сейчас нет возможности посмотреть исходники, думаю завтра получиться, но рекомендую добавить функции подробного логирования (хорошо помогает отлаживать такие ошибки). |
|
Skier78rus | Дата 14.1.2010, 18:28 |
в Линухе при ошибках посылаються сигналы(типо SIGABRT) и никаких exceptions не происходит. Это я вычитал в инете, когда столкнулся с проблеммой если вы не обрабатываете иксепшены в программе то по умолчанию она завершает работу (т.е. SIGABRT). Если перехватываете то можете как угодно её обрабатывать. Вот в том-то и проблемма.....я не знаю способов перехватить ексепшен, кроме как try cath, который не ловит ничего...... Я может быть чего-то не понимаю или где-нибудь забыл поставить галочку нужную....но ничего он не ловит... Если Вы знаете другой метод отлова исключений подскажите пожалуйста буду очень признателен!!! |
|
azure | Дата 14.1.2010, 14:40 |
в Линухе при ошибках посылаються сигналы(типо SIGABRT) и никаких exceptions не происходит. Это я вычитал в инете, когда столкнулся с проблеммой если вы не обрабатываете иксепшены в программе то по умолчанию она завершает работу (т.е. SIGABRT). Если перехватываете то можете как угодно её обрабатывать. |
|
Litkevich Yuriy | Дата 13.1.2010, 23:15 |
Skier78rus, смотри Справка по кнопкам и тэгам форума. код читать в виде простого текста тяжело. | |
Skier78rus | Дата 13.1.2010, 19:20 |
Про код соглашусь...... Я просто поудалял, там есть функция AddDebugFile, пытался по ней невышло..... Там с постом какая-то проблема,надо нижние два раскрывающиеся тексты смотреть..... А как qt к студии прикрутить? |
|
kuler | Дата 13.1.2010, 19:13 |
Или Вы имеете ввиду только для поиска бага? ага говнокод ужаснейший. Надо разбить на методы, а между ними писать в дебаг файл, при вылете смотришь что прошло а до чего не дошло. Уже чтото. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 8:35 |