почему таблица символов требуется для отладки

Я отлаживаю встроенную систему в моей компании, используя Lauterbauch.

Мои коллеги сказали мне, что нам нужно, чтобы двоичный файл выполнялся в целевой системе, и нам требовался тот же исходный код, из которого исполняется двоичный файл (src), и файл таблицы символов (.elf).

Мой вопрос

  1. Почему нам нужна таблица символов для отладки?

  2. В Windows мы отлаживаем двоичный файл, где, как здесь, мы используем файл bin + elf для отладки? Почему есть отдельный файл эльфа.

Выше приложение написано на C ++, скомпилировано с gcc и ОС vxworks.

Я пытаюсь понять концепции и начинающий. Просьба объяснить для непрофессионала термины для начинающих на простых примерах.

Спасибо

0

Решение

Для отладки в терминах исходного кода необходимо знать, какой адрес соответствует какой строке источника или имени переменной. Эта информация хранится в таблице символов, которая обычно является частью исполняемого файла. Таблица не загружается в оперативную память для выполнения, но используется различными инструментами, которые читают исполняемые файлы, такими как отладчики и компоновщики.

При отладке программы на том же компьютере отладчик может искать символы непосредственно в отлаживаемом двоичном файле.

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

3

Другие решения

Вам нужна таблица символов в двоичном файле, чтобы вы получали символы в отладчике, а не только адреса.

1

По вопросам рекламы [email protected]