Как получить исходный код eglibc, используемый Ubuntu?

Как мне получить исходный код eglibc в формате, который позволит пройти через исходный код с помощью gdb?

Я пытался использовать apt-get source libc6-dev, и это работает для получения исходного кода, но я думаю, что, поскольку директивы препроцессора не были применены, номера строк, которые имеет gdb, не совпадают с исходным кодом, который я скачал , Это делает его менее полезным при попытке просмотреть исходный код и посмотреть, как работают функции в libc.

2
задан 27 April 2012 в 01:28

2 ответа

Вы можете попробовать apt-get source -d libc6-dev, и это должно дать вам источник и diff в формате deb. Затем вы можете распаковать его, и он должен передать исходные тексты в tar.gz также распаковать его. Он должен храниться в каталоге, в котором вы запускали команду apt-get.

1
ответ дан 27 April 2012 в 01:28

Если вы действительно хотите пройтись по исходному тексту, я бы порекомендовал создать libc без оптимизации и без удаления двоичных файлов.

К счастью, это должно быть легко - поскольку у вас уже есть исходный код, из него можно собирать пакеты. Убедитесь, что переменная окружения DEB_BUILD_OPTIONS содержит noopt для получения -O0 двоичных файлов и nostrip для хранения отладочных символов, и затем выполните обычную сборку с помощью debuild :

sudo apt-get build-dep libc6
DEB_BUILD_OPTIONS="noopt nostrip" debuild -us -uc

соберет вам пакеты, созданные с помощью -O0 , без удаления символов отладки; затем вы можете установить их с помощью dpkg , и gdb заберет символы отладки. В качестве дополнительного бонуса gdb также будет знать, где найти исходные файлы, поэтому вы получите списки источников.

Поскольку мы не меняли версии пакетов, при следующем запуске обновления apt заменит их локально установленные пакеты с архивными версиями.

2
ответ дан 27 April 2012 в 01:28

Другие вопросы по тегам:

Похожие вопросы: