Документация для GNU binutilsstrip ссылается на причину, но не является явной, упоминая в описании --only-keep-debugэтого
Примечание. Заголовки разделов разделов сохраняются, включая их размеры, но содержимое раздела отбрасывается. Заголовки разделов сохраняются, так что другие инструменты могут сопоставить файл debuginfo с реальным исполняемым файлом, даже если этот исполняемый файл был перемещен в другое адресное пространство.
То есть, если не указано явно с помощью этой -Rопции, stripбудут сохранены заголовки разделов, чтобы помочь другим программам (в том числе gdb) выполнять свою работу.
Страница Правильное использование команды strip (часть Reverse Engineering с использованием операционной системы Linux ) отмечает
Выполнение stripкоманды на исполняемом файле является наиболее распространенным методом защиты программы. В операции по умолчанию stripкоманда удаляет таблицу символов и любую отладочную информацию из исполняемого файла. Вот как это обычно используется. Тем не менее, есть еще полезная информация, которая не удаляется.
и далее перечисляет несколько полезных вещей, которые могут быть оставлены позади - для анализа «раздетого» исполняемого файла.
В Learning Linux Binary Analysis , это подтвердил, отметив , что заголовки разделов , как правило , хватает только , когда кто - то намеренно удалил их, и что без заголовков разделов, gdbи objdumpпрактически бесполезны.