Source-level debugging внутри stdlibc++ и glibc
Коллеги, подскажите куда копать?
Ситуация такая. Для разработки своих c++ приложений использую gdb 7.2, gcc 4.4.5, glibc 2.12, Code::Blocks 10.
Все пакеты поставлены из портежа (без оверлеев), живу под KEYWORDS="amd64".
Все бы хорошо, но gdb при отладке моего приложения отказывается показывать исходники glibc и stdlibc++.
Например, ставлю точку останова на оператор new, делаею step into.
gdb мне показывает, что выполняет такие-то внутренние функции, но
_ХОТЕЛОСЬ БЫ_ видеть исходный код и вообще при попадании внутрь glibc или stdlibc++
отлаживаться также, как будто это продолжается моя программа.
С собственными приложениями и библиотеками проблем нет, все работает, все видит (в том числе и в Code::Blocks).
В портеже нашел фичи: FEATURES="splitdebug" и "installsources".
Уже много раз пересобирал gcc и glibc, но не дают покоя две ошибки:
1. После многократных пересборок со splitdebug (удаления /usr/lib64/debug), gdb стал выдавать CRC mismatch на файлы с отладочной информацией пересобранных пакетов (лежат в /usr/lib64/debug).
Один раз мне удалось пересобраться, эта ошибка пропала, но сейчас вновь не могу от нее избавиться. Пытался вручную пересчитывать CRC-32 (согласно документации gdb) нефига не совпадает с тем, что
записано в секции .gnu_debuglink.
2. Фича installsources что-то ничего толкового не делает. Создается /usr/src/debug, но там какие-то жалкие куски исходников.
Пожалуйста, посоветуйте, что читать, куда копать по главному вопросу:
source-level debugging внутри glibc и stdlibc++ ?
Заранее благодарен
- Для комментирования войдите или зарегистрируйтесь
(*)
http://www.gentoo.org/proj/en/qa/backtraces.xml
Проблема решена
Спасибо! То что нужно!
Сухой остаток:
Пересобрал gcc и glibc при следующих условиях:
В CFLGAG добавлено "-ggdb"
FEATURES="installsources splitdebug"
USE="debug"
# emerge glibc gcc
Получил /usr/lib64/debug и /usr/src/debug, где лежат необходимая отладочная информация и исходники.
Проблема решена. Еще раз спасибо
USE="debug" имхо зря, оно еще
USE="debug" имхо зря, оно еще аукнется хорошими, качественными глюками
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
да я в ebuild'е посмотрел
да я в ebuild'е посмотрел перед сборкой, там только вроде защита стека добавляется
во всяком случае if use debug только в одном месте используется.
Да и debug только проверяется, если use+=hardened.
До следующего обновления пока так поживу, посмотрю на глюки.
Предупреждение - учту.