2013-12-04 2 views
0

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

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

Мой вопрос

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

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

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

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

Благодаря

ответ

3

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

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

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

+0

Спасибо за подробное объяснение. Один вопрос по вышеуказанному тексту, как вы упомянули, «на маленьком сервере не хватает интеллекта, чтобы просмотреть их и перейти к удаленному отладчику». Обычно какой тип информации отправляется цели на удаленный отладчик./Thanks – venkysmarty

+0

Состояние выполнения (запуск/останов/остановка в точке останова), содержимое памяти, регистры, вещи, которые делают это. –

1

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

Смежные вопросы