Я попытался отлаживать встроенное приложение на целевом объекте с помощью gdb. Следовательно, gdb, запущенный на хосте, требует двоичный код с отладочными символами, то есть двоичный код, скомпилированный с -g. На цели достаточно разборной копии двоичного кода. В целевом я попытался использовать двоичный файл, скомпилированный без -g, вместо разделенной копии, но это не сработало.gdb: бинарный скомпилированный с -g и лишенный по сравнению с двоичным скомпилированным без -g
GNU strip отбрасывает все символы из объектных файлов (скомпилированные с -g). Итак, разве это не равно двоичному скомпилированному без -g? Почему это не работает?
-g также отключает оптимизацию, которая включена по умолчанию, поэтому она не эквивалентна удалению исполняемого файла. –
@ н.м. Вы ошибаетесь: для GCC флаг '-g' действительно * не * влияет на оптимизацию * вообще *. –
@EmployedRussian вы правы, должен быть еще один миф, перенесенный из старых плохих дней с многочисленными собственными-unixes. –