crossplatform.ru

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

laa88rf
  опции профиля:
сообщение 26.8.2010, 12:07
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 30.7.2010
Из: Orsk
Пользователь №: 1918

Спасибо сказали: 0 раз(а)




Репутация:   0  


Привет всем.
Как и многие программеры столкнулся с вопросом - как дебажить прогу, которая вылетает по ошибке или которой не хватает чего-то, но при этом она работает, или аналогичные ситуации.

Простейший пример ситуации - программа запущена, но как только пользователь вводит логин и пароль, нажимает Ок, диалог ввода расходится и на экране появляет только фоновая картинка приложения. Вариантов тут 2, которые между собой не связаны:
1. Криворукость программера.
2. Отключение сервера БД, где лежат логины/пароли.

Второй пример - как в играх, игра вылетела по ошибке - получи запись в *.log

Как можно записать конкретно что произошло?
Заранее благодарю за ответ.

ЗЫ. извиняйте за корявость текста. Только начинаю программить.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
3 страниц V   1 2 3 >  
Начать новую тему
Ответов (1 - 22)
molchanoviv
  опции профиля:
сообщение 26.8.2010, 13:06
Сообщение #2


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


Не совсем понял вопроса, но постараюсь ответить. Дебажить просто. Только нужно соблюсти некоторые условия. В проекте должно быть указано GONFIG += debug и у тебя должен быть помощник отладчика(в SDK это все есть). Затем просто в креаторе выбираешь режим Дебаг(в колонке слева) и вперед. Про сервер БД вообще не понял, но думаю что стоит почитать про QSqlError.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
laa88rf
  опции профиля:
сообщение 26.8.2010, 14:05
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 30.7.2010
Из: Orsk
Пользователь №: 1918

Спасибо сказали: 0 раз(а)




Репутация:   0  


Скорее всего вопроса не поняли.
Есть готовый проект, который работает у людей, но время от времени, по каким либо причинам (которые заранее не известны) происходят глюки. Надо отследить эти глюки.
Для этого и предлагаю делать записи в логи. по сути мне надо логгирование ошибок/багов/глюков в программе.
Причина редактирования: очепятки
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 26.8.2010, 14:17
Сообщение #4


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


laa88rf,
ну так логируй их эти ошибки и глюки в файл с временными метками.
потом отследишь что случилось в такое то время.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
laa88rf
  опции профиля:
сообщение 26.8.2010, 14:24
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 30.7.2010
Из: Orsk
Пользователь №: 1918

Спасибо сказали: 0 раз(а)




Репутация:   0  


А если без времени обойтись?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 26.8.2010, 14:38
Сообщение #6


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


laa88rf, ну
время в сислоге можно натсроить
а вообще есть уровни отладки разные. отключаемые неотключаемые и проч.
у нас в оганициции в лог сообщения пишут с метками
" m " - внут сообщения
" i ' - информацинные
" p ' - старты стопы
" d " - чисто отладочные для разработчика
" w " - предупреждения и ошибки после которых возможно продолжить работу
" e " - критические ошибки после которых работу продолжить невозможно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
laa88rf
  опции профиля:
сообщение 26.8.2010, 14:41
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 30.7.2010
Из: Orsk
Пользователь №: 1918

Спасибо сказали: 0 раз(а)




Репутация:   0  


а как вызвать сислог на виндомашинах?
или вы предлагаете обращаться к урналу windows?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 26.8.2010, 14:46
Сообщение #8


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


что значит вызвать сислог?
на определнный порт по определнным правилам шлешь сообщения в сеть на опред ip где запущен сислог. в общем логе сислога будет отобрадаться имя твоей программы и уровни сообщений, время.
потом все это можно grep проходить и выяснять что и когда и по каким причинам произошло.

П.С.
не пойму последовательность и причины вопросов. может ты просто не знаешь как сообщение лог вывести ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
laa88rf
  опции профиля:
сообщение 26.8.2010, 14:57
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 30.7.2010
Из: Orsk
Пользователь №: 1918

Спасибо сказали: 0 раз(а)




Репутация:   0  


Вспомнил, что юниксы могут слушать на интерфейсе. Но вопрос в другом.
Мне нужно локально производить запись в файл вего происходящего с программой.

Тот же самый биллинг от нетапа может сам логгировать свои логи, баги и т.п.
Те же самые игрушки могут мониторить, что точка входа в библиотеку не правильная и пишут это в свой лог, что видеокарта дохлая и "не потянет" такое разрешение/детализацию и т.п., что если текстура не построилась, то она пишет все в лог. Простой пример - Counter Strike с включенной консолью. Пишет какую текстуру грузит, что с текстурой в процессе загрузки, кто подключился и когда, причем берется факт подключения, а по факту время, но не наоборот. И т.п.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 26.8.2010, 15:16
Сообщение #10


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


laa88rf,
чет туговат я стал, ниче не пойму что те надо.
почитай про методику отладки в ассистенте. Debugging Techniques - называется
может тебя макросы по типу Q_ACCERT интерисуют ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 26.8.2010, 17:32
Сообщение #11


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


да, я что-то тоже читала-читала вопрос - так и не поняла, что автор хочет.
я так понимаю: есть прога, есть её полный код, прога глючит, надо вставить в код логирование в местах ошибок? ну дык если ты найдёшь места, где глючит - то проще код поправить...
а так, логировать-то можно хоть в файл, хоть куда. какие проблемы с этим?

Сообщение отредактировал Iron Bug - 26.8.2010, 17:33
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ufna
  опции профиля:
сообщение 26.8.2010, 17:34
Сообщение #12


Активный участник
***

Группа: Участник
Сообщений: 362
Регистрация: 24.5.2008
Из: Курган/СПб
Пользователь №: 182

Спасибо сказали: 29 раз(а)




Репутация:   5  


1. Прочитай про qDebug() и сходные qWarning() и т.п.
2. Посмотри как перенаправить вывод в файл (кучу раз обсуждалось)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
laa88rf
  опции профиля:
сообщение 27.8.2010, 6:57
Сообщение #13


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 30.7.2010
Из: Orsk
Пользователь №: 1918

Спасибо сказали: 0 раз(а)




Репутация:   0  


Плохо, что не поняли.
Крупный проект. Встречаются программные ошибки. Нужно если программа сваливается по ошибке - собирать отладочную информацию.
Еще пример, MS Office валится по ошибке и предлагает отправить отладочную инфу производителю. Мне надо реализовать такой механизм логгирования ошибки.

Надеюсь, что понятно отписал. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 27.8.2010, 7:03
Сообщение #14


фрилансер
******

Группа: Участник
Сообщений: 2943
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


laa88rf, вот тут когда-то я с подобным пытался столкнуться , может поможет. Но у меня руки так и не дошли даже попробовать - глюк нашёлся и был отлажен :)

Сообщение отредактировал Алексей1153 - 27.8.2010, 7:03
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
laa88rf
  опции профиля:
сообщение 27.8.2010, 9:02
Сообщение #15


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 30.7.2010
Из: Orsk
Пользователь №: 1918

Спасибо сказали: 0 раз(а)




Репутация:   0  


Все хорошо, но приведенный там код будет работать только с приложениями майкрософта. ((
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 27.8.2010, 9:06
Сообщение #16


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(laa88rf @ 27.8.2010, 7:57) *
Еще пример, MS Office валится по ошибке и предлагает отправить отладочную инфу производителю. Мне надо реализовать такой механизм логгирования ошибки.

вот теперь понятно.
с таким не сталкивался.
но где про это читал. вспомню где обязательно отвечу.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 27.8.2010, 10:21
Сообщение #17


фрилансер
******

Группа: Участник
Сообщений: 2943
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


laa88rf, нуу, дык
Цитата(laa88rf @ 27.8.2010, 9:57) *
Еще пример, MS Office валится по ошибке и

ты привёл пример MS приложения, а какая у тебя ОС не сказал )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
laa88rf
  опции профиля:
сообщение 27.8.2010, 11:21
Сообщение #18


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 30.7.2010
Из: Orsk
Пользователь №: 1918

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 27.8.2010, 11:21) *
ты привёл пример MS приложения, а какая у тебя ОС не сказал )

))
У меня все оси. )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.8.2010, 19:32
Сообщение #19


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


если честно, забыл где видел. Но помню, что проект с открытыми исходниками, сделано было под виндовоз и лунух. Некий перехватчик в функции main. Который ловил падения программы, что он делал не помню, т.к. код перхватчика был длинный.
стал быть искать имеет смысл.

П.С.
Если вспомню, то отпишусь
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 27.8.2010, 19:33
Сообщение #20


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


по-моему с исключениями что то связано.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
laa88rf
  опции профиля:
сообщение 2.9.2010, 20:51
Сообщение #21


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 30.7.2010
Из: Orsk
Пользователь №: 1918

Спасибо сказали: 0 раз(а)




Репутация:   0  


Написал парсинг, засунул его вывод в qdebug - ожидал большего, т.к. на вывод идет только то, что я отправляю. А мне надо собирать в первую очередь все, а потом уже пытаться отсеивать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ufna
  опции профиля:
сообщение 2.9.2010, 23:01
Сообщение #22


Активный участник
***

Группа: Участник
Сообщений: 362
Регистрация: 24.5.2008
Из: Курган/СПб
Пользователь №: 182

Спасибо сказали: 29 раз(а)




Репутация:   5  


Имхо, понятия "все" нет. Вывод всегда тот, который кто-то сделал. Само по себе оно выводиться не будет да и не должно - это лишние операции, в некоторых случаях совершенно излишние. Как вывод - будет выводиться только то, что поставил на вывод сам программист.

Но ты можешь ловить все QEvent'ы и выводить их. Но это не есть гуд, т.к. текста будут дикие количества
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 3.9.2010, 11:54
Сообщение #23


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

Спасибо сказали: 94 раз(а)




Репутация:   12  


Это механизмы C++ , есть глобалный обработчик исключительных ситуаций, по умолчанию он вызывает стандартную функцию terminate(), переопределяй его, если нужно перехваты друго уровня исключений то ищи соответсвующие места, далее в этом обработчике складывай все в лог, если удастся в зависимости от типа exception http://www.extinguishedscholar.com/wpglob/?p=176 посмотри тут пример
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 7.4.2025, 15:37