Есть ли какая -нибудь кросс -платформная отдельная GDB GUI ?

Rogerclark
Пн 11 мая 2015 г. 12:53
Ребята,

Я искал способ сделать в схеме отладку с помощью Stlink, что было бы дополнением к Arduino IDE, но до сих пор я нарисовал :-(

Я могу заставить GDB работать из командной строки, но это не практическое решение.

Eclipse имеет отдельный отладчик, но это боль для настройки даже на Linux, и я не уверен, что он вообще поддерживается в Windows :-(

Я не пробовал их, но есть программа под названием DDD http: // www.гну.org/software/ddd/ о чем люди бредят, но это похоже на его Linux (и теперь, кажется, не поддерживается)

Я нашел редактора на базе Java под названием Jedit, который имеет плагин GDB, но он больше не поддерживается, и я просто получаю ошибки, когда пытаюсь использовать плагин GDB.

Я также посмотрел на что -то под названием «Боброматический отладчик» http: // code.Google.com/p/beaverdbg/ который также больше не поддерживается.
Кажется, он подключается к GDB ARM, но я не выяснил, как отправить необходимые команды запуска.
Так что трудно понять, будет ли это пригодным для использования или нет.

У кого -нибудь еще есть какие -либо предложения о том, что можно использовать.

Это должно быть кросс -платформ, и что -то, что можно было бы распространить как часть репо
Я думаю, что иметь что -то, что можно было бы загрузить, было бы в порядке.

Спасибо

Роджер

Ахулл
Пн 11 мая 2015 г., 1:19
DDD выглядит интересно, вот еще одна возможность...

https: // www.исходная посуда.Org/Insight/Downloads.PHP

Rogerclark
Пн 11 мая 2015 г., 9:40
@ahull

Я скачал понимание (Последняя версия) Но она получает ошибку компиляции в Mingw, так как все предупреждения установлены для обработки как ошибок :-(

Последнее обновление было в 2009 году, поэтому, если оно не работает хорошо на Linux, я не уверен, что стоит попытаться заставить версию Windows хотя.

Я попытался загрузить VisualGdb, плагин для Visual Studio (потому что теоретически Visual Studio 2013 Edition - это кросс -платформ) - это кросс -платформ)
Но не очень далеко с этим с этим не очень далеко, потому что, похоже, он предназначен для разработки и отладки внутри Visual Studio, а просто использование отладчика самостоятельно.
В любом случае, для большинства людей это, вероятно, не практично, и это не то, что я мог бы поместить в репо


Я увижу, смогу ли я узнать больше о том, как настроить Beaverdebugger, так как, по крайней мере, он работает и подключается к GDB, хотя в настоящее время я не думаю, что он загружает файл ELF, поскольку ни один из окон показывая любой исходный код и т. Д

Rogerclark
Пн 11 мая 2015 г., 11:01
На всякий случай, если это любое использование для всех.

Я быстро документирую, как использовать Stlink и командную строку GDB

В настоящее время это не автоматизированный процесс, поэтому вам нужно будет сделать немного резки и вставки, и в Windows открывается несколько оконных окон (и окна оболочки открыты в Linux)

Установите свои предпочтения IDE в словесность для компиляции и загрузки
Создайте и загрузите свой эскиз через Stlink
Посмотрите на многословном выходе на местоположение .Файл эльфи, например, путь и файл будут выглядеть примерно так

C: \ users \ rclark \ appdata \ local \ temp \ build1841586567283255896.tmp/hardware_timer.CPP.эльф

Теперь узнайте, скрыл ли IDE компилятор C, в Windows в 1.6.3. это в %appdata %\ arduino15 \ packages folder e.глин.

Посмотрите на самую первую строку многословного вывода, и вы увидите его в начале E.глин.

C: \ users \ rclark \ appdata \ roaming \ arduino15 \ packages \ arduino \ tools \ arm-none-eabi-gcc \ 4.8.3-2014q1/bin/arm-none-eabi-g++


Так что путь

C: \ users \ rclark \ appdata \ roaming \ arduino15 \ packages \ arduino \ tools \ arm-none-eabi-gcc \ 4.8.3-2014Q1 \ bin \

Теперь сохраните этот путь где -нибудь e.глин. текстовый редактор и добавление gdb exe

Итак, весь путь к отладчику

C: \ users \ rclark \ appdata \ roaming \ arduino15 \ packages \ arduino \ tools \ arm-none-eabi-gcc \ 4.8.3-2014q1 \ bin \ arm-none-eabi-gdb.Exe

Откройте командное окно (или Linux Shell)

Затем вставьте этот адрес, которым следует полный путь к файлу ELF E.глин.

C: \ users \ rclark \ appdata \ roaming \ arduino15 \ packages \ arduino \ tools \ arm-none-eabi-gcc \ 4.8.3-2014q1 \ bin \ arm-none-eabi-gdb.exe C: \ users \ rclark \ appdata \ local \ temp \ build1841586567283255896.tmp/hardware_timer.CPP.эльф

Нажмите ENTER, и это запустит GDB и скажет ему загрузить файл ELF для эскиза (файл ELF содержит всю информацию о файле, который вы загрузили, которые необходимы GDB)

Теперь откройте еще одну командную строку и компакт

Вы можете найти путь, посмотрев на многословный выход непосредственно перед тем, как он выполняет загрузку

эн.глин.

C: \ users \ rclark \ documents \ arduino \ hardware \ arduino_stm32/tools/win/

CD в ​​эту папку, а затем в папку Texane Stlink и запустите программу ST-UTIL

Это выведет немного текста о типе процессора, который у вас есть, но программа не должна возвращаться к командной строке, поскольку она остается запущенной

Вернитесь к другой командной строке, которая запускает GDB, и введите

TAR EXT: 4242

Вы должны получить сообщение

Удалить отладку с помощью: 4242

Это означает, что он подключается к программе ST-UTIL, которую вы запустили в другой командной строке

Теперь вы можете выпустить команды GDB

Вы можете посмотреть их, но хорошее начало - выпустить команду убийства

убийство

Это сбросит в настоящее время запущенную программу на вашем доске

Если вы сейчас введите

список

Вы увидите код ассемблера, который представляет собой первые 10 строк кода, которые будут выполнены, когда программа работает.
Это не первые 10 строк в эскизе, код эскиза вызывается изнутри Main, и еще до того, как Main будет загружен, запускается много кода настройки, некоторые из которых находятся в ассемблере

теперь тип

бегать

И через несколько секунд ваша программа начнет работать

Если вы нажмете Control C во время работы, GDB остановит выполнение и перечислит файл и строку, на которой он остановился.

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

тип

список

Чтобы увидеть код,

нажимать

продолжать продолжать

Есть множество команд GDB и множество документов в Интернете

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


В любом случае. Хотя этот метод отладки действительно работает, как вы можете видеть, его довольно сложно использовать, поэтому, чем раньше мы сможем получить графический интерфейс для работы GDB, тем лучше.

Mrburnette
Пн 11 мая 2015 12:25
@Роджер:

Вы просмотрели этот список:
https: // sourceware.org/gdb/wiki/gdb%20front%20ends

Rogerclark
Пн 11 мая 2015 г. 22:10
Луча

Спасибо.

Отладчики, на которых я смотрел, в основном из этого списка

Проблема в том, что вряд ли кто -либо из них является автономным.

Те, которые являются частью IDE, обычно не позволяют вам начать отладчик отдельно и передавать файл ELF к отладчику.

IDE Arduino, кажется, находится на 5 лет за время на этом фронте, так как он не взаимодействует с GDB .

Я попробовал один из двух из IDE в этом списке, но к тому времени, когда загружаюсь, а затем иногда установил, а иногда должен сделать установку плагинов и т. Д., А затем попытаться выяснить, могу ли я запустить отладчик отдельно, он занимает довольно какое-то время

Итак, на данный момент я продолжаю возвращаться в GDB на командной строке

Я разместил в списке рассылки разработчиков Arduino об этом, так как я думал, что они начали некоторую работу, чтобы поддержать в схеме отладки на ноль, но я не думаю, что у меня были какие -либо ответы

Рик Кимбалл
Пн 11 мая 2015 г., 22:50
Вы можете проверить эту ветку:

http: // www.STM32duino.com/viewtopic.PHP?F = 35&t = 113#P837

Rogerclark
Пн 11 мая 2015 г., 23:16
Рик

Спасибо

Вы используете Eclipse в качестве отдельного отладчика, используя файл ELF из IDE ?

Я думал, ты собираешься в затмении.

Я мог бы получить автономный отладчик Eclipse для запуска на Linux, но я не могу найти никаких документов о том, работает ли он вообще на Windows.

Если у меня будет время (маловероятно), я надеялся выяснить, как был запущен автономный отладчик на Linux, и попытаться воспроизвести в Windows.
Потому что большинство людей (я думаю, около 80%) используют окна.


Другая вещь, которая должна быть разработана, это как остановить бег ST-UTIL.

На Linux это было бы менее сложным, как вы можете просто сделать

./ut-util &

бежать на заднем плане,

а затем используйте убить, чтобы избавиться от этого

Однако это не так просто на окнах ;-(

Интересно, может ли GDB отправить сообщение на сервер ST-UTIL, чтобы сказать ему, чтобы уйти. Это могло бы быть одним из решений.

Или GDB может сказать ST-UTIL загрузить новый бинарный ???

Рик Кимбалл
Пн 11 мая 2015 г., 23:46
Rogerclark написал:Вы используете Eclipse в качестве отдельного отладчика, используя файл ELF из IDE ?

Rogerclark
Пн 11 мая 2015 г. 11:56 вечера
Рик.

ХОРОШО. Я только что сделал пару тестов

Start /B ST-UTIL.Exe

Работает и начинается на заднем плане

Taskkill /f /im ut-util.Exe

Убивает задачу


Так, только, Нужно заставить Eclipse CDT автономный отладчик даже запустить в Windows :ржу не могу:

Rogerclark
Чт 14 мая 2015 г., 6:42
Я получил ответ от члена команды IDE Dev (Кристиан Магли)
Отладка графического интерфейса для Arduino IDE планируется, но скоро не произойдет. Итак, нам просто придется провести путь к этому.

Я немного удивлен, что Teensy уже этого не делает, но похоже, что соединения SWD должны быть припаяны.

Rogerclark
Пн 18 мая 2015 г., 8:55 вечера
Просто быстрое обновление.

Похоже, что DDD, возможно, будет работать как на Linux, так и на Windows, поэтому может быть одним из способов для пользователей Windows в отладке схемы, однако мне еще не удалось заставить DDD работать правильно.

На Linux лучший способ установки DDD, по-видимому, заключается в APT-GET, поскольку доступный в настоящее время источник с сайта DDD Project не компилируется.

Эндрю Нолл из списка рассылки разработчиков IDE надеется поместить свою исправленную версию источника DDD на GitHub, поэтому будет версия, которая собирается для Linux, но он еще не сделал этого.

В Windows DDD можно установить путем установки Cygwin, включая дополнительные файлы x11.

Как только это будет установлено, вы просто введите DDD из командной строки Cygwin, а DDD начинается в новом окне

Однако в настоящее время проблема в Windows - это пути к исходным файлам.

А .Файл ELF создается как часть процесса сборки IDE, но пути к файлам - это стиль Windows E.глин. C: \ и DDD, кажется, есть проблема с этим. Не только направление вспышки, но и c:
Это потому, что Cygwin не имеет пути, называемого C:, он отображает C с суб -каталогом внутри структуры файла Cygwin

На данный момент у меня нет решения для этого.

Я попытался выполнить поиск и заменить в файле ELF (двоичный) обратных ударов, чтобы пересылать черты, но это не помогает из -за C:

И поскольку файл ELF является двоичным, невозможно просто заменить C: на путь Cygwin на C

У GDB есть функция замены пути, которую я еще не пробовал, которая может быть в состоянии сделать преобразование, или может быть способ либо компилировать без полных путей, вставленных в файл ELF, или, возможно, запустить некоторую утилиту в файле ELF Чтобы сделать преобразование пути.

Так что на данный момент DDD выглядит так, как будто он может быть использован, если я смогу преодолеть препятствие пути.


На фронте отладчика затмения.
Я опубликовал на форуме Eclipse несколько дней назад, но в прошлый раз, когда я проверял, никто не ответил на мой вопрос о том, была ли версия Windows доступна.

Так что проспект в данный момент приостановлен

Ахулл
Пн 18 мая 2015 г., 21:20
DDD имеет преимущество в том, что, возможно, является меньшим следствием и, возможно, меньшей кривой обучения, чем Eclipse, но я возьму (или оба обоих : D ).

Martinayotte
Пн 18 мая 2015 г., 21:33
Rogerclark написал:Это потому, что Cygwin не имеет пути, называемого C:, он отображает C с суб -каталогом внутри структуры файла Cygwin

Rogerclark
Пн 18 мая 2015 г., 21:36
Мартин

Cygwin, кажется, отображает это по умолчанию для меня, но файл эльфа, сгенерированный IDE, имеет пути Windows

Возможно, мне нужно попробовать запустить IDE изнутри Cygwin, чтобы он получил пути стиля Linux.

Однако это может сломать IDE


Редактировать


Я только что попытался запустить IDE из окна оболочки Cygwin. IDE работал в порядке (на удивление), но пути все еще не очень хороши.

Они по -прежнему содержат C: \, даже если они используют папку температуры под цигвином, а не в папке Windows Temp

Я сомневаюсь, что просто сделайте текст замену в файле ELF, исправит пути, потому что я подозреваю, что у файла есть внутренняя структура, которую я бы сломал, изменив лизки этих строк. Единственный хакерский обходной путь - это сделать замену и скопировать файлы на другой путь под Cygwin, у которого было одинаковое количество символов, я.E, чтобы ни одна из строк C в файле ELF не должна была изменить их длину.

Я посмотрю, будет ли замена источника, работающего в GDB

Установите замену Path C: \ users \ rclark \ appdata \ local \ temp/cygdrive/c/users/rclark/appdata/local/temp

видеть
https: // sourceware.org/gdb/onlinedocs/g ... -Путь.HTML

Потому что они одинаковые режиссеры, но один - версия Cygwin, а другая - версия Windows

Rogerclark
Вторник 19 мая 2015 г., 21:13
Ребята,

Я получил ответ от разработчиков Eclipse..
Тема: Re: Как я могу использовать отдельный отладчик Eclipse для встроенной отладки? Автор: Марк Хузам Дата: Вторник, 19 мая 2015 г. 19:21
Текущая версия автономного отладчика CDT использует сценарии, которые работают только на Linux.
Некоторая документация здесь: https: // wiki.затмение.org/cdt/standalonedebugger

Тем не менее, комитеты CDT работают над RCP -версией автономного отладчика, которая должна работать в Windows.
Это должно быть готово к следующему выпуску Eclipse/CDT 24 июня 2015 г.

Это хорошая новость, потому что, хотя мы можем заставить DDD в конечном итоге работать над Windows, я думаю, что Eclipse станет лучшим решением, поскольку это то, что активно разрабатывается в отличие от DDD, который эффективно не поддерживается.

Я буду связываться с командой Eclipse E.глин. Отправьте им файл ELF, сгенерированный Arduino IDE и т. Д

Ахулл
Вторник 19 мая 2015 г. 11:53
Я нагреваю решение Eclipse, мне удалось заставить DDD работать сегодня с моим клоном "ST-Link V2".

Я буду укорениться и напишу, как на вики, когда у меня появится шанс. Это было немного хлопьев. Я не уверен, что это связано с версией DDD, которую я использовал, так что может потребоваться немало полировки, прежде чем он полностью используется.

Rogerclark
Вторник 19 мая 2015 г., 23:57
@ahull

ОК, о DDD.

Я не думаю, что он будет работать на Windows из -за полных путей в файле ELF, облажая нагрузку на файл DDD

Я уверен, что если бы не было альтернативы, мы могли бы изменить и перекомпилировать DDD для Windows, чтобы он понял обратные черты и т. Д., Или написать код для обработки файла ELF, но я подозреваю, что Eclipse - лучший вариант.

Мубас
Чт 21 мая 2015 г., 16:23
Я успешно отладил свой STM32F4, используя Eclipse с плагином Zylin и OpenOCD-0.8.0 . У Zylin есть варианты для нативного или цигвина, и его довольно легко настроить.
Для просмотра регистрации я использовал EmbesSySregewiew, который является действительно хорошим плагином для Eclipse, который поднимает все регистры на вашей доске. Вы можете изменить бит значений регистра на лету!!!!

Здесь есть хороший учебник:
http: // vedder.SE/2012/12/отладка-- ... D-Eclipse/

Rogerclark
Чт 21 мая 2015 г., 8:40 вечера
Спасибо

Мубас.

Я заметил, что инструмент GUI STM STLINK, по -видимому, позволяет вам читать и устанавливать внутренние регистры, поэтому будет возможно контроль над регистрами.

Я думаю, что это все стандартные вещи для процессоров ARM, а не то, что реализовал сама STM, поэтому на веб -сайте ARM, вероятно, много информации и т. Д.