GDB - влезте в статично свързана libstdc++

По причини извън обхвата на този въпрос трябва да свържа статично libstdc++ към моите изпълними файлове. Практическият недостатък е, че сега GDB не може да влезе в stdlib символите. Когато използвах споделените свързани варианти на моя изпълним GDB нямаше проблеми да ми покаже придружаващите изходни файлове (след като бях инсталирал изходния пакет чрез apt-get под ubuntu, който го инсталира под /build)

Как мога да вляза във функциите на libstdc++, когато е статично свързан с изпълним файл в GDB, под Ubuntu (14.04)?


person hbogert    schedule 23.10.2014    source източник
comment
Страхувам се, че ще ви трябва статичната stdc++ lib със символи за отстраняване на грешки. Не знам дали за ubuntu има такива идеи като отделни пакети със символи за отстраняване на грешки за статични библиотеки.   -  person Oncaphillis    schedule 24.10.2014


Отговори (1)


Ubuntu пакет libstdc++6-4.8-dbg предоставя статичната библиотека със символи за отстраняване на грешки в /usr/lib/x86_64-linux-gnu/debug/libstdc++.a; опитайте да създадете своя изпълним файл срещу него и след това стартирайте gdb.

person Fabio A. Correa    schedule 23.10.2014
comment
Това все още не подобрява ситуацията. Временно преместих статичната библиотека без отстраняване на грешки, за да съм сигурен, че получавам очаквана грешка, след което добавих път за свързване с „-L“ към директорията за отстраняване на грешки: usr/lib/x86_64-linux-gnu/debug/ след това свързването беше успешно, но все още няма навлизане във функции - person hbogert; 24.10.2014
comment
Опитайте компилацията с g++ -static-libgcc, както е описано от Johan Petersson. - person Fabio A. Correa; 24.10.2014
comment
Не работи също, потвърдих с 'ldd', че наистина вече нямам зависимости от libgcc, както и от libstdc++ - person hbogert; 24.10.2014