Я разобрал код в руке. Я хочу знать соответствующий номер строки этих инструкций в исходном исходном файле.рычаг код сборки - понимание разобрать источник cpp
Кроме того, я хотел бы кое-что понять.
Функция, например, заявляет, что android::CameraHardware::createInstance
отображается в сборе как _ZN7android18CameraHardware14createInstanceEib
. Я даже не уверен, что это правильная функция, с которой я должен сравнивать ее или нет.
Почему имена так странно, и вещи добавляются спереди и сзади? Обычно я делаю то же самое для кода C. Названия функций выглядят прямо в разобранном коде.
Итак, чтобы подвести итог, у меня есть два вопроса.
Внутри GDB есть способ я мог бы получить номер строки определенной линии инструкции сборки?
Скажите, например, на 0x40d9078c, я хочу знать, в какой строке это соответствует в своем исходном файле. Я пробовал инфо-линию. Не использовать. Любые другие предложения?
Когда мы понимаем разборки кода cpp, как понимать соглашения об именах? Также, что еще нужно, чтобы понимали как предпосылки?
Спасибо.
Подсказка: посмотрите на 'extern 'C'', если вы пропустили свои прямые имена – nijansen
1) Изучите сглаживание имен C++. 2) изучите язык символов отладки (например, DWARF). –
Не знаю о 'gdb', но вы можете использовать' objdump' с параметрами '-SCld' для разборки, смешанной с исходными номерами строк и строк, с демарнированными именами. – Michael