FreeBasic
Главная
Вход
Регистрация
Воскресенье, 13.10.2024, 06:58Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
GUI для GDB (только для FreeBasic)
haavДата: Пятница, 26.11.2021, 19:34 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 1363
Репутация: 49
Статус: Offline


Да , я знаю , что из всего кол-ва пользователей freebasic , пользуются отладчиками жалкие единицы (я думаю одной руки для подсчета хватит). Но все же я сделал (в первую очередь для себя) GUI для отладчика GDB. По сути задумывался просто временный вариант , пока SARG не доделает свой отладчик под Linux. Однако его работа сильно затянулась , а отладчик бывает нужен. Отладчиком GDB из консоли терпимо пользоваться в фоне для отлова ошибок (то есть включил программу под отладчиком и работаешь , пока не случится крэш). Что касается трассировки под GDB , то на мой взгляд лучше вообще работать без отладчика. Именно поэтому , я написал простенькую гуишку в первую и основную очередь под Linux 64bit. Хотя должно работать под windows (32bit , 64bit) и linux (32bit , 64bit). Просто основное тестирование проводилось только на Linux 64-bit.
Программа нормально взаимодействует с GDB 8 , GDB 10 , по крайней мере на Linux 64-bit.

Небольшое видео использования: https://disk.yandex.ru/i/vMZIc9tHPssB2Q

Скачать можно здесь: https://sourceforge.net/projects/frontend-gdb-for-freebasic/

Если возникнут сложности с поиском или сборкой самого отладчика GDB под Windows 64bit , то можно скачать отсюда GDB 10: https://disk.yandex.ru/d/_iZpBdYGdNYphA (собирал сам).
Прикрепления: 3589042.png (95.9 Kb) · 8135106.png (138.7 Kb)


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
zamabuvaraeuДата: Четверг, 02.12.2021, 20:41 | Сообщение # 2
Подполковник
Группа: Друзья
Сообщений: 149
Репутация: 5
Статус: Offline
Ух ты! Крутотень.

Я вчера пытался из Visual Studio Code отлаживать фрибесик‐проекты через расширение GDB для C++ (под виндовс конечно же). Запускать отладчик он запускает, даже выводит на консоль что отладчик запущен и символы загружены. Но поставить точки останова нельзя, увидеть исходный код нельзя, остаётся только команды вводить в консолье окно.

Отладка же сишных проектов в Visual Studio Code работает, можно мышкой ставить точки останова и всё такое прочее, что обычно делают в визуальных студиях от корпорации Микрософт.

Ещё тормозит процесс отладки, что FreeBASIC искажает имена переменных и структур, до добавляя к ним то $1 или $2, то подчёркивания с долларами и цифрами, переводит имена в верхний регистр, а отладчик чувствителен к таким вещам. Клавиша TAB конечно автоматически дополняет имя переменной.

Также он убирает псевдонимы у типов. Например, тип данных DWORD не оставляет в виде DWORD, а пишет его 32‐битным беззнаковым целым. Я понимаю, что это сделано чтобы не зависеть от версий компиляторов си, но отладка фрибесик‐программы всё ещё оставляет желать лучшего.

Говорят, что когда доделают трансляцию в LLVM код, тогда можно будет компилировать си‐компилятором от корпорации Микрософт, а значит, можно пользоваться и отладчиком из визуальей студии.
 
haavДата: Понедельник, 06.12.2021, 10:52 | Сообщение # 3
Генералиссимус
Группа: Администраторы
Сообщений: 1363
Репутация: 49
Статус: Offline
Всем привет!

Вышла 2 версия программы. Первая версия также доступна для скачивания.

Что нового во второй версии:

1) исправлены найденные ошибки
2) изменен интерфейс (вместо надписей появились иконки, добавлено всплывающее меню)
3) появилась возможность изменять значения переменных (вызывается меню в окне переменных)
4) вы можете копировать данные из окна переменных (меню вызывается в окне переменных)
5) можно включить / отключить автообновление переменных при пошаговой отладке (меню вызывается при нажатии кнопки ОПЦИИ)
6) оптимизирован вывод глобальных переменных

К сожалению, на 32-битных системах существует неразрешимая проблема с обновлением глобальных переменных (озвученная здесь). Это проблема с именами переменных и структур, которые GDB не распознает. Из-за этой проблемы данные переменных в графическом интерфейсе могут быть неверными.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
bxusinboyДата: Воскресенье, 12.12.2021, 18:11 | Сообщение # 4
Рядовой
Группа: Пользователи
Сообщений: 16
Репутация: 2
Статус: Offline
Цитата zamabuvaraeu ()
Я вчера пытался из Visual Studio Code отлаживать фрибесик‐проекты через расширение GDB для C++ (под виндовс конечно же). Запускать отладчик он запускает, даже выводит на консоль что отладчик запущен и символы загружены. Но поставить точки останова нельзя, увидеть исходный код нельзя, остаётся только команды вводить в консолье окно.Отладка же сишных проектов в Visual Studio Code работает, можно мышкой ставить точки останова и всё такое прочее, что обычно делают в визуальных студиях от корпорации Микрософт.

В Visual Studio Code надо поставить так:
File -> Preferences -> Settings -> Features -> Debug -> Allow Breakpoints Everywhere - Allow setting breakpoints in any file
Можно искать breakpoint в Settings.

Цитата haav ()
К сожалению, на 32-битных системах существует неразрешимая проблема с обновлением глобальных переменных (озвученная здесь). Это проблема с именами переменных и структур, которые GDB не распознает. Из-за этой проблемы данные переменных в графическом интерфейсе могут быть неверными.

По-моему многие не использует одинаковые имена переменных для типа и переменного.
 
zamabuvaraeuДата: Вторник, 21.12.2021, 14:28 | Сообщение # 5
Подполковник
Группа: Друзья
Сообщений: 149
Репутация: 5
Статус: Offline

Цитата
По-моему многие не использует одинаковые имена переменных для типа и переменного.
Читаю как‐то код на Си, а там:

HDC hDC, hDc, hdc, Hdc, HDc, hdC, HdC;
 
haavДата: Воскресенье, 03.04.2022, 16:43 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 1363
Репутация: 49
Статус: Offline
Начал тут отладку юникодовой программы под виндой и не получилось. Как оказалось , я при написании вообще забыл , что это может понадобится для винды. В общем попробовал исправить этот недостаток. Сейчас вроде под виндой можно отлаживать юникодовые программы. Под линуксом к сожалению только программы в UTF8. Пробовал делать отладку UTF32 , но GDB через PIPE возвращает что-то непонятное. Разбираться было лень , тем более что в UTF32 на FB никто исходники не сохраняет.

Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
haavДата: Среда, 28.12.2022, 11:30 | Сообщение # 7
Генералиссимус
Группа: Администраторы
Сообщений: 1363
Репутация: 49
Статус: Offline
Обновлено:

1) Добавлена возможность присоединения к существующему процессу
2) Диалог "Command" теперь не закрывается после каждой команды , а ждет закрытия от пользователя
3) Исправлены некоторые ошибки и недочеты
4) Добавил файл readme.txt , для того , чтобы пользователи лучше понимали как установить/настроить.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
haavДата: Вторник, 27.02.2024, 09:42 | Сообщение # 8
Генералиссимус
Группа: Администраторы
Сообщений: 1363
Репутация: 49
Статус: Offline
Обновлено:

1) Добавлены горячие клавиши для часто-используемых функций
2) Добавлена возможность удаления всех брекпоинтов
3) Исправлен переход по клавише TAB для интерфейса (window9 должна быть самой последней версии)
4) Исправлено заполнение регионов памяти в гаджет


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
  • Страница 1 из 1
  • 1
Поиск: