Работа с отладочными символами
Здравствуйте.
Помогите найти документацию или объяснение, почему так происходит. Суть: Есть исходный код, допустим : https://github.com/Sehktel/DeepThought В Linux загружаем, компилируем Код:
g++ -g ./Deep.cpp -o ./Deep.out Я могу переместить бинарный файл в системе (например в /tmp ) и все равно получить исходник. Следовательно, есть предположение, что исходник находится внутри файла. Но нет. Если переименую Deep.cpp в Deep_1.cpp gdb с задачей list не справится. Следовательно исходника внутри нет. (?!) Вопросы.
P.S. Поиграть в онлайн можно здесь: https://killercoda.com/thcode/course...cOps/scenario2 Для работы приходится в недрах системе держать исходный код в открытом виде, что не хотелось бы. |
Цитата:
|
shisik, например по абсолютному пути?
Вполне может быть, поищу в эту сторону. |
Похоже так и есть, собрал простейшую программку типа
Код:
int main() { Код:
cat main Код:
main.cpp/absolute/path/to/source |
-g это на самом деле -g2 https://gcc.gnu.org/onlinedocs/gcc/D...g-Options.html
Там ещё -g3 c максимумом отладочной информации. Символьные таблицы и метаданные сохраняются под определённые форматы, где смысл ограничений по имени файла может быть зарыт глубоко в документации или в голове какого-то одного разработчика. Искать этот смысл вряд ли имеет смысл. |
shisik, спасибо. Нашел и увидел абсолютные пути в распечатке файла. (cat)
Sham, документ видел, но очевидно вдумчиво до нужных фраз не дочитал. |
Время: 02:15. |
Время: 02:15.
© OSzone.net 2001-