Я считаю, что принятый ответ вводит в заблуждение, поскольку библиотеки в /usr/lib/debug
не являются откомпилированной (-g -O0 ...) версией библиотек в /lib
, /usr/lib
, а просто отладочными символами, удаленными изсоответствующая библиотека в /lib
, /usr/lib
.См. Объяснение принятых ответов на Как использовать отладочную версию libc и для Как связать с отладочными версиями libc и libstdc ++ в GCC? подробнее.
Цитаты:
Библиотеки в /usr/lib/debug
не являются реальными библиотеками.Скорее, они содержат только отладочную информацию, но не содержат .text
или .data
разделов реального libc.so.6
и
Во многих Linuxустановки библиотеки отладки не содержат реального кода;они содержат только отладочную информацию.Они разделены, так что вы можете не устанавливать их, если они вам не нужны, и вам не хватает места на диске, но библиотеки отладки сами по себе не годятся.
Проверьте себяс:
objdump -h /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.19.so | grep -C1 text
11 .text 001488a3 000000000001f520 000000000001f520 000002b4 2**4
ALLOC, READONLY, CODE
Сегмент .text
равен ALLOC
, но без CONTENTS
.Сравните с соответствующей библиотекой в /lib/x86_64-linux-gnu/libc-2.19.so
:
$ objdump -h /lib/x86_64-linux-gnu/libc-2.19.so | grep -C1 text
11 .text 001488a3 000000000001f520 000000000001f520 0001f520 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE