Использование дебаггера

Страница 1 из 2 1, 2  Следующий

Предыдущая тема Следующая тема Перейти вниз

Использование дебаггера

Сообщение  tux в Вт Авг 19, 2008 12:31 pm

Ктонить поьзовался в FB дебагером, если да, то каким?
Встроенным я чета пытался нефига полезного чета не добился, говорять вроде сторонние какието мона использовать, ктонить слышал про такое?
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Eric-S в Вт Авг 19, 2008 2:06 pm

Я не пользовался. Туплю конкретно на этот счёт.
Стараюсь проги писать так, чтобы без дебагера выживать.

А ты вообще его как запускаешь? Как я понял, там утилитка консольная gd.exe. И программу нужно компилить с ключём -g. Больше ничего не понял.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  tux в Вт Авг 19, 2008 2:27 pm

Вот и я также))
Походу там по проге еще надо какието метки прям в исходнике раскидывать, я так и не вкупил как конкретно.
Я обычно тоже както не пользовался особо ими, но всегда понимал, что на поиск ошибок с ним уйдет куда меньше времени.
Едиственный дебагер который я использовал, ето в асме для контроллеров, так там удобно можно отслеживать по ходу программы значение каждого регистра, те переменной.
Интересно есть ли ченить подобное и во FB чтобы мона было прям значения переменных видеть, было бы удобно...
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Eric-S в Вт Авг 19, 2008 4:05 pm

Угу. И чтобы можно было по шагам выполнять программу. Пропуская или заходя в функции.

В vb6 мне дебагер как-то не очень.

А единственным, которым я пользовался это debug.exe.

Так, что знаний, на сей счёт у меня кране мало.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Eric-S в Ср Авг 20, 2008 8:31 am

Касательно freepascal, но на русском
http://exefox.com/showarticle.php?id=1114802201

Кажись этот gdb очень мощная штука!

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Eric-S в Чт Авг 21, 2008 4:42 pm

Кстати, а ты заглядывал в examples/manual/debug/
Там есть три простеньких примера.

Компилишь их с ключём
fbc -g assert.bas

потом
bin\win32\gdb assert.exe
r

А чё дальше не понял.
Но прога запускаеться.
И заодно касперыч ругаеться, что типа внедрение в процесс.

По идеи должны были выскочить дополнительные сообщения, но где? Я так и не увидел.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Eric-S в Пн Авг 25, 2008 10:53 am

Сейчас копался и случайно наткнулся на русское руководство. Если оно поможет и ты разберёшься, поделись пожалуйста впечатлением и опытом!
http://mitya.pp.ru/gdb/

И вот ещё
http://ru.wikipedia.org/wiki/GDB

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Замабувараев в Пн Авг 25, 2008 11:10 am

Eric-S пишет:Касательно freepascal, но на русском
http://exefox.com/showarticle.php?id=1114802201

Кажись этот gdb очень мощная штука!
Это тот же самый отладчик, что входит и во FreeBASIC (лежит в папке FreeBASIC\bin\win32). Читайте эту статью, многое будет понятно, как пользоваться отладчиком.
avatar
Замабувараев

Сообщения : 99
Дата регистрации : 2008-08-20
Возраст : 33
Откуда : Красноярск

Посмотреть профиль http://www.freebasic.su

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Eric-S в Пн Авг 25, 2008 12:48 pm

А про gdb.exe мы по этому и говорим, что он прилагаеться.

Но там в статье именно паскаль!

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

А как запустить отдельно функцию или посмотреть значение переменной вообще неясно. Или тоже нужно все имена в верхнем регистре писать?

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Использование дебаггера

Сообщение  justar в Вс Авг 31, 2008 9:35 pm

Eric-S пишет:А про gdb.exe мы по этому и говорим, что он прилагаеться.
А как запустить отдельно функцию или посмотреть значение переменной вообще неясно. Или тоже нужно все имена в верхнем регистре писать?

Просмотр значения произвольной переменной: print имя_переменной
Мониторинг состояния переменной: display имя_переменной (автоматически показываются все переменные из всех команд display при любой остановке)
Изменение значения переменной: set имя_переменной := новое_значение

Имена переменных надо писать в верхнем регистре только в командах GDB, в исходнике они могут быть в любом регистре.

Практически выяснил один нюанс: все команды работы с переменными видят их только после команды run (если попробуешь поставить watchpoint или display до run то получишь сообщение об отсутствии такого имени). Поэтому я всегда ставлю break 1, потом запускаю прогу и после остановки ввожу необходимые watch и display. Затем continue - и пошла работа

justar

Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 43
Откуда : Кишинёв, Республика Молдоа

Посмотреть профиль

Вернуться к началу Перейти вниз

GDB

Сообщение  ShenZN в Пн Сен 01, 2008 7:35 pm

Можно воспользоваться специальной утилитой, которая является GUI над GDK.

GDB Insight:

http://sources.redhat.com/insight/

Очень удобная и полезная Very Happy

ShenZN

Сообщения : 155
Дата регистрации : 2008-02-18
Откуда : Ukraine

Посмотреть профиль http://lodestar-game.narod.ru

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  electrik в Вт Сен 02, 2008 8:56 pm

привет. есть такая замечательная штука OllyDBG. можно делать все что угодно, но надо знать ассемблер, и реальных названий переменных вы в нем не увидите, надо смотреть по коду. можно ходить по шагам, залезать в функции, просматривать значения регистров, отискивать текст, лазить по виндовым окнам, если приложение графическое, и т.д. скажу вам сразу, если вы хотите просматривать непосредственно свой код, смело можете пропускать первые шесть килобайт кода, так как перед нашим кодом, FreeBasic подготавливает почву для работы, параметры командной строки и т.д. FreeBasic компилится в Native code- натуральный код. FreeBasic- это не интерпретатор, а реальный код. интерпретатором называется PCode(pseudo code) псевдокод, так что кто вам скажет что FreeBasic интерпретатор, плюньте ему в лицо. запускайте дебагер, и наслаждайтесь истинным машинным кодом!

electrik

Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 36
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  justar в Ср Сен 17, 2008 7:33 am

ShenZN пишет:Можно воспользоваться специальной утилитой, которая является GUI над GDK.

GDB Insight:

http://sources.redhat.com/insight/

Очень удобная и полезная Very Happy
С этой ссылки скачать у меня не получилось - похоже, там лежит только линуксовая версия... Зато нашёл любопытный инсталлятор под Винду AllInOne: cодержит FB 0.20, FBEdit, GDB и Insight

http://www.allbasic.info/forum/index.php?topic=88.0

justar

Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 43
Откуда : Кишинёв, Республика Молдоа

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Andrew в Вт Ноя 18, 2008 7:48 pm

Может быть немного запоздало, но думаю будет полезно, тем кто еще не знал.

Сразу скажу что у меня компилятор под Дос, не знаю как с виндосовским компилятором, может также...Ну в общем:
1) Заходим в папку с FreeBasic'ом Very Happy
2) Находим там fbc.exe
3) Правая клавиша на значке fbc.exe -> свойства
4) Нажимаем вкладку "Программа", снимаем галочку "Закрыть после завершения приложения"
5) Теперь идем пишем сразу с ошибкой программу, компилируем, при компиляции открывается окно, с указанием ошибок, и по-моему даже с указателем на линию с ошибкой.

Andrew

Сообщения : 45
Дата регистрации : 2008-09-23
Возраст : 28
Откуда : Киев

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  tux в Вт Ноя 18, 2008 9:07 pm

ну вобщемто дебагер используется немного для другова, а именно чтобы мона было отследить значения каких либо переменных во время выполнения программы, или чтобы мона было приостанавливать прогу в некоторых местах, или выполнять по шагам...
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Andrew в Ср Ноя 19, 2008 4:44 pm

По моему опыту из PureBasic-a главная задача дебагера была как раз в том чтобы искать ошибки в коде. Ну может быть я не прав...

При компиляции с дебагером - снизу писались ошибки с указанием на строку. Если дебагер выключить - то валазила табличка типа иди с отчетом в майкрософт.
Правда там еще можно было вывести какую-нибудь переменную, делалось это так:
Debug(A*)
Но я считаю что тот же вывод переменной (раз он так необходим) при исполнении самой программы можно легко написать самому.

Andrew

Сообщения : 45
Дата регистрации : 2008-09-23
Возраст : 28
Откуда : Киев

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Eric-S в Вт Янв 13, 2009 1:35 am

Хм. Ща немного почитал статью, ссылку на которую приводил здесь раньше.
А потом заюзал gdb.exe. Всё плавненько и аккуратненько пошло.


Но... Вот такой вопрос, кто-нибудь может мне сказать, как отследить освобождаеться ли память или нет?

Я в проге запутался. Не могу понять, когда память освобождаеться, а когда нет.

Мне хотябы нужно просто получить сколько сейчас памяти используеться. Чтобы можно было сравнить до и после операции. Оно не должно измениться.

И ещё вопрос. Можно ли в самой проге, поставить точки останова?

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  tux в Вт Янв 13, 2009 8:53 am

точки останова удобно делать через сам дебагер, команды правда непомню, но там просто указываеш имя функции, допустим, а потом от нее мона по шагам дальше ехать и просматривать значения переменых... удобно
А на счет памяти, то в линухе есть отдельная утилитка утилитка (опенсурсная, следовательно и на венду портировали, наверно), она какраз предназначена для отслеживания утечек памяти, вот тока как называется, опять не помню(( но мона погуглить (так я ее и нашел)
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Eric-S в Вт Янв 13, 2009 11:26 am

Возможно gprof.exe?
Там во фрибэйсике для него даже есть некии ключики.
Ладно я потом как-нибудь попробую разобраться.
Сейчас уже башка не варит. А потом буду занят.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Eric-S в Вт Янв 13, 2009 11:27 am

Кстати на счёт точек... Из самого gdb.exe это понятно. Просто может из исходника тоже можно это сделать.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  DiG. GeRR в Вс Фев 01, 2009 8:43 pm

Да... Удобного дебаггера, хотя бы как у ВБ, для ФБ нам еще долго не видать. Во всяком случае, не раньше, чем стандартную ИДЕ. Для тех, кто знает асм, лучше Олли ничего нет. Лично я просто раскидываю по коду точки останова вроде
asm
int 3
end asm
потом в олю и там, где нужно, останавливаешься и смотришь.

DiG. GeRR

Сообщения : 101
Дата регистрации : 2009-01-30
Возраст : 25
Откуда : Рудный, Казахстан

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Eric-S в Пн Фев 02, 2009 2:23 am

Не.. В принципе gdb он достаточно мощен. Но к нему нужно приспособиться.
А ведь всё довольно просто.

Кстати буквально вчера вечером, лестая readme.txt у freebasic обнаружил подробное, пошаговое руководство, как пользовать gdb. Лаконично, без размазни, и при этом всё что действительно нужно.

Но gdb... Не знаю, я всё равно блужу в своих проектах с ним. У меня бырают такие выкрутасы. Функции вызывают друг друга рекурсивно. И если отдельный участок кода я ещё понимаю. То прокрутить в мозгу всю работу я просто не в силах.
Для этого я написал несколько своих макросов. Причём они вставляються в код, когда я компилю прогу только в отладочном режиме, с ключём -g.
Ну а потом, раскидываю по ключевым местам эти макросики, и проверяю, что и куда у меня выходит.

И не знаю, что медленнее пользовать эти макросы или отладчик. Мне проще с макросами.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  vbman в Вс Фев 15, 2009 4:14 pm

Я ГДБ использую, но хотелось бы что постабильнее. Самый убитый глюк - когда происходит обращение к невыделенной памяти у меня даже комп виснет. Embarassed Shocked Shocked Shocked
avatar
vbman

Сообщения : 52
Дата регистрации : 2008-11-19
Возраст : 35
Откуда : Украина, Кировоград

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Andrew в Ср Фев 25, 2009 11:51 pm

Насчет отслеживания занятой памяти.... Диспетчер задач не катит? Или ты в линухе ?

Andrew

Сообщения : 45
Дата регистрации : 2008-09-23
Возраст : 28
Откуда : Киев

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Eric-S в Сб Фев 28, 2009 3:18 am

Упс. А ведь точно. Диспетчер задач должен немного помочь.
Об этом-то я и не подумал.
Хотя хочеться всё же более точного инструмента.
Но меня бы устроила просто функция, которая скажет, сколько памяти сейчас пользует моя софтина.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Использование дебаггера

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Страница 1 из 2 1, 2  Следующий

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения