# DebugVarEdit — Утилита для генерации переменных для отладки **DebugVarEdit** — графическое приложение для Windows, предназначенное для настройки и генерации отладочных переменных (`debug_vars.c`) на основе исходного C-проекта. Работает с `makefile` проекта, сохраняет изменения в XML и позволяет удобно редактировать переменные и их типы через интерфейс. Программа — один исполняемый файл `DebugVarEdit.exe`, не требующий установки и дополнительных зависимостей. > Требуется Windows 7 или новее. > [Для разработчиков](#для-разработчиков) --- ## Как использовать 1. Запустите **DebugVarEdit.exe.** 2. Укажите пути: - **Путь к XML** — новый или существующий файл настроек переменных; - **Путь к проекту** — путь к корню проека (папка, которая является корнем для проекта в Code Composer); - **Путь к makefile** — путь к `makefile` относительно корня проекта; - **Путь для debug_vars.c** — папка, куда будет сгенерирован файл `debug_vars.c` с переменными. 3. Нажмите **Сканировать переменные**: - Программа проанализирует исходники, указанные в makefile, и найдёт все переменные. - Результат сохранится в двух XML-файлах: - `structs.xml` — информация обо всех структурах и typedef; - `<ваш_файл>.xml` — список всех найденных переменных. 4. Нажмите **Добавить переменные**: - В **левой таблице** отображаются все найденные переменные. Для добавления переменной в проект дважды кликните по ней или нажмите кнопку `>`, чтобы переместить в правую таблицу. - В **правой таблице** находятся переменные, выбранные для использования. Чтобы убрать переменную из проекта, переместите её обратно в левую таблицу двойным кликом или кнопкой `<`. - После выбора переменных нажмите **Применить**, чтобы обновить основной список переменных и включить их в проект. 5. Настройте параметры выбранных переменных: - **En** — включение или отключение переменной для генерации; - **Base Type** — базовый тип переменной (например, int8, uint16 и т.д.); - **IQ Type** — формат IQ, если применимо; - **Return Type** — формат возвращаемого значения (IQ-тип или целочисленный); - **Shortname** — короткое имя переменной для для терминалки. Все параметры выбираются из выпадающих списков, которые можно настроить, чтобы отображались только нужные опции. 6. Нажмите **Сгенерировать файл** для создания файла `debug_vars.c` с выбранными переменными. --- ## Возможности - Загрузка и сохранение настроек переменных в XML-файлах. - Автоматическое определение исходных файлов с переменными для удобства работы. - Редактирование переменных: включение, короткого имени и типов через удобные списки. - Подсветка ошибок при вводе (неправильные имена, слишком длинные короткие имена). - Быстрая фильтрация переменных по столбцам. - Автоматическая генерация файла debug_vars.c с выбранными переменными. - Возможность сразу открыть сгенерированный файл в редакторе. - Умное автодополнение имён переменных и полей структур. --- ## Пример XML-файла ```xml true true myv pt_float t_iq24 t_iq24 float Src/main/main.c true false ``` --- # Для разработчиков ### Структура проекта: ```bash Src ├── build/ │ └── build_and_clean.py # Билдинг проекта в .exe (через nuitka или pyinstaller) ├── DebugVarEdit_GUI.py # Главное окно ├── var_table.py # Таблица выбранных переменных ├── var_selector_window.py # Окно выбора переменных ├── var_selector_table.py # Таблица переменных в окне выбора переменных ├── scan_progress_gui.py # Отображение процесса сканирования переменных ├── scan_vars.py # Сканирование переменных среди .c/.h файлов ├── generate_debug_vars.py # Генерация debug_vars.c ├── myXML.py # Утилиты для XML ├── makefile_parser.py # Парсинг makefile на .c/.h файлы ├── var_setup.py # Подготовка переменных для окна выбора переменных ├── libclang.dll # Бибилиотека clang ├── icon.ico # Иконка ``` ### Зависимости Для запуска приложения: - **Python 3.7+** - **clang** — используется для парсинга C-кода (требуется `libclang.dll`) - **PySide2** — GUI-фреймворк - **lxml** — работа с XML > Python 3.7 и PySide2 рекомендуется для совместимости с Windows 7 Для сборки `.exe`: - **Nuitka** — создает полностью автономный `.exe` без внешних зависимостей - **PyInstaller** — создает `.exe` с зависимостью от `pythonXX.dll` (Python должен быть установлен) ### Сборка: Если вы хотите собрать `DebugVarEdit.exe` самостоятельно из исходников, используйте скрипт **build/build_and_clean.py**. Он автоматически собирает проект с помощью Nuitka или PyInstaller: - Собирает проект в `DebugVarEdit.exe` в корневой папке. - Включает: - все необходимые `.dll` (например, `libclang.dll`), - иконку (`icon.ico`), - плагины PySide2. - Очищает временные папки после сборки: - `build_temp` - `__pycache__` - `DebugVarEdit_GUI.*` > Все пути, имена файлов, временные папки и выбор между Nuitka и PyInstaller можно настроить в начале файла `build_and_clean.py`. ### Установка зависимостей ```bash pip install PySide2 lxml nuitka pyinstaller ```