crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 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 Рейтинг@Mail.ru Текстовая версия Сейчас: 11.7.2025, 5:06