Как отладить исходный код .so?

0

Я хочу знать, как отлаживать внутренний источник такого файла. У меня есть такой файл, и я использую dlopen(), чтобы открыть его, затем я использую dlsym() для загрузки метода. Теперь я использую инструменты g++ с флагом -g, чтобы скомпилировать его. Он работает очень хорошо, однако я не могу войти в такой источник, используя команду gdb "next".

  • 3
    Это потому, что «следующий» шаг за вызовами функций. Используйте «шаг», чтобы войти в функции!
  • 0
    Также: так как вы нацелены на gdb, вы можете использовать -ggdb .
Показать ещё 7 комментариев
Теги:

2 ответа

1

Если весь код скомпилирован с -g (и что включает в себя код dlopen -ed общий объект .so файла и весь код основного dlopen -ing программа), то вы можете шаг в зависимости от вашего плагин с gdb (или даже добавить точку останова внутри).

Может быть полезно использовать совсем недавние версии компилятора GCC (например, 4.8) и отладчика GDB (т.е. 7.6). Оба они значительно улучшились и недавно по этим аспектам.

1

Кажется, вы смешиваете два разных способа запуска gdb. Здесь ссылка, объясняющая, как перебирать исходный код.

http://sourceware.org/gdb/onlinedocs/gdb/Continuing-and-Stepping.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню