Debug программы. |
Здравствуйте, гость ( Вход | Регистрация )
Debug программы. |
laa88rf |
26.8.2010, 12:07
Сообщение
#1
|
Студент Группа: Участник Сообщений: 19 Регистрация: 30.7.2010 Из: Orsk Пользователь №: 1918 Спасибо сказали: 0 раз(а) Репутация: 0 |
Привет всем.
Как и многие программеры столкнулся с вопросом - как дебажить прогу, которая вылетает по ошибке или которой не хватает чего-то, но при этом она работает, или аналогичные ситуации. Простейший пример ситуации - программа запущена, но как только пользователь вводит логин и пароль, нажимает Ок, диалог ввода расходится и на экране появляет только фоновая картинка приложения. Вариантов тут 2, которые между собой не связаны: 1. Криворукость программера. 2. Отключение сервера БД, где лежат логины/пароли. Второй пример - как в играх, игра вылетела по ошибке - получи запись в *.log Как можно записать конкретно что произошло? Заранее благодарю за ответ. ЗЫ. извиняйте за корявость текста. Только начинаю программить. |
|
|
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 интерисуют ? |
|
|
Текстовая версия | Сейчас: 27.11.2024, 4:09 |