Я добился очень хорошей настройки с помощью следующего ужасного хака: определите проект Eclipse внутри самого каталога build/ARM
!
Это делается путем создания «Нового проекта make-файла с существующим кодом» в папке каталог сборки. Вы также захотите исправить стандартную библиотеку C ++, как указано в: Как решить проблему «Неразрешенное включение: » в файле C ++ в Eclipse CDT?
Это прекрасно работает, потому что Как работает система сборки gem5 по состоянию на май 2020 года, каталог build/ARM
содержит в точности окончательное дерево компиляции, включая все исходные символические ссылки и автоматически сгенерированный код,.
Эта настройка не идеальна, потому что все еще есть C ++ вещи в build/
за пределами ARM
, например ext
, но в 99% случаев нас это не волнует, и я могу отлично перемещаться по ключевому автогенерированному коду, например инструкциям и декодеру.
Затем я просто собираю через командную строку, обычно используя scons
.
Огромные автоматически сгенерированные файлы, такие как exe c -ns. cc .in c, включаю режим ограничения больших файлов Eclipse. Примечательно, что если вы хотите перейти к определению, Ctrl + щелчок у меня не работает, поэтому я просто копирую интересующий символ и Ctrl + Shift + T в go в его определение.
Я не Обычно я не пытаюсь отладить шаг GDB gem5 через Eclipse и использовать его в основном для навигации по коду, поскольку GDB Dashboard имеет тенденцию работать достаточно хорошо для меня, и мне часто нужно выполнять новые запуски сбора журналов, и я иногда используйте обратную отладку , когда все становится серьезно.
Но я тестировал пошаговую отладку через Eclipse, и она работала нормально (я думаю, нет причин, чтобы не делать этого), вам просто нужно ее настроить точно так же, как и для любого другого приложения C ++ с Makefile, т.е. в основном сообщать eclipse двоичное имя и желаемый интерфейс командной строки в конфигурациях отладки. сборка отладки или сборка gem5.opt, где сборка .debug
примерно 10-20 раз медленнее , но дает большую видимость отладки. В общем, если время, необходимое для достижения интересующей точки в отладочной сборке, начинает вас раздражать, то, что вы действительно хотите, - это использовать обратную отладку.
Это также упоминается в: https://cirosantilli.com/linux-kernel-module-cheat/#gem5 -eclipse-configuration
Протестировано в Eclipse 2020-03.