crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Подскажите куда копать....(сигнал SIGABRT)
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Skier78rus Дата 16.1.2010, 3:11
 
Цитата(BRE @ 15.1.2010, 12:49) *
Цитата(Skier78rus @ 15.1.2010, 12:41) *
Прочитал про сигналы, поправьте, если я ошибаюсь, но есть два типа сигналов, первые это сигналы QT, которые легко перехватываються и обрабатываються.
И второй тип это сигналы ядра Linux, типо SIGABRT, которые тоже можно самому перехватить, но я не понял как....

http://www.opennet.ru/cgi-bin/opennet/man....&category=2

Цитата(Skier78rus @ 15.1.2010, 12:41) *
А функции подробного логирования это qDebug и тому подобное из библиотеки TestLib???

Можно просто писать в файл то, что программа делает в данный момент, а можно использовать и qDebug.
Посмотри еще на эту функцию, она поможет переопределить весь вывод от qDebug в файл:
QtMsgHandler qInstallMsgHandler ( QtMsgHandler handler )


Спасибо

Буду копать...
azure Дата 15.1.2010, 14:58
 
Цитата(Skier78rus @ 14.1.2010, 17:28) *
Вот в том-то и проблемма.....я не знаю способов перехватить ексепшен, кроме как try cath, который не ловит ничего......

вероятно, в этом месте ексепшенов не происходит. смоделируйте ситуацию с ексепшеном и словити её. try\catch - это свойство языка, оно обязано быть реализовано во всех компиляторах с++.
BRE Дата 15.1.2010, 12:49
 
Цитата(Skier78rus @ 15.1.2010, 12:41) *
Прочитал про сигналы, поправьте, если я ошибаюсь, но есть два типа сигналов, первые это сигналы QT, которые легко перехватываються и обрабатываються.
И второй тип это сигналы ядра Linux, типо SIGABRT, которые тоже можно самому перехватить, но я не понял как....

http://www.opennet.ru/cgi-bin/opennet/man....&category=2

Цитата(Skier78rus @ 15.1.2010, 12:41) *
А функции подробного логирования это 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
 
Цитата(azure @ 14.1.2010, 14:40) *
Цитата(Skier78rus @ 13.1.2010, 16:49) *
в Линухе при ошибках посылаються сигналы(типо SIGABRT) и никаких exceptions не происходит.

Это я вычитал в инете, когда столкнулся с проблеммой

если вы не обрабатываете иксепшены в программе то по умолчанию она завершает работу (т.е. SIGABRT). Если перехватываете то можете как угодно её обрабатывать.


Вот в том-то и проблемма.....я не знаю способов перехватить ексепшен, кроме как try cath, который не ловит ничего......
Я может быть чего-то не понимаю или где-нибудь забыл поставить галочку нужную....но ничего он не ловит...
Если Вы знаете другой метод отлова исключений подскажите пожалуйста буду очень признателен!!!
azure Дата 14.1.2010, 14:40
 
Цитата(Skier78rus @ 13.1.2010, 16:49) *
в Линухе при ошибках посылаються сигналы(типо 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
 
Цитата(Skier78rus @ 13.1.2010, 19:03) *
Или Вы имеете ввиду только для поиска бага?

ага

говнокод ужаснейший. Надо разбить на методы, а между ними писать в дебаг файл, при вылете смотришь что прошло а до чего не дошло. Уже чтото.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 12:01