Я отлаживаю встроенную систему в моей компании, используя Lauterbauch.
Мои коллеги сказали мне, что нам нужно, чтобы двоичный файл выполнялся в целевой системе, и нам требовался тот же исходный код, из которого исполняется двоичный файл (src), и файл таблицы символов (.elf).
Мой вопрос
Почему нам нужна таблица символов для отладки?
В Windows мы отлаживаем двоичный файл, где, как здесь, мы используем файл bin + elf для отладки? Почему есть отдельный файл эльфа.
Выше приложение написано на C ++, скомпилировано с gcc и ОС vxworks.
Я пытаюсь понять концепции и начинающий. Просьба объяснить для непрофессионала термины для начинающих на простых примерах.
Спасибо
Для отладки в терминах исходного кода необходимо знать, какой адрес соответствует какой строке источника или имени переменной. Эта информация хранится в таблице символов, которая обычно является частью исполняемого файла. Таблица не загружается в оперативную память для выполнения, но используется различными инструментами, которые читают исполняемые файлы, такими как отладчики и компоновщики.
При отладке программы на том же компьютере отладчик может искать символы непосредственно в отлаживаемом двоичном файле.
При отладке удаленной программы нет доступного двоичного файла, просто маленький крошечный сервер, который может выполнять простые команды, такие как остановка, запуск, отображение памяти и т. Д. Даже если удаленный двоичный файл содержит символы, у маленького сервера нет интеллекта, чтобы искать их и передавать к удаленному отладчику. Таким образом, отладчик должен использовать символы из отдельного локального двоичного файла, который точно соответствует отлаживаемому.
Вам нужна таблица символов в двоичном файле, чтобы вы получали символы в отладчике, а не только адреса.