2010-08-17 1 views
0

Тестов:Анализа основного файл разделяемых объектов

[1] создания водораздела 0 в исполняемого шляпы был составлен с оптимизацией (O2) и отладочными символами, таким образом, ядро ​​сформировалось.

[2] создание деления 0 в общего объекта шляпы был собран с оптимизацией (O2) и отладки символов, таким образом, сердечник был сгенерирован.

Результаты:

[Первый] анализирующие ядро, генерируемый [1] удалось и точное расположение раздавить можно было увидеть в GDB/Totalview.

[Second] Анализ ядра, сгенерированного [2], НЕ был успешным, а шестнадцатеричное числовое значение было результатом раздавливания.

может кто-то сказать, как я могу получить [2], чтобы добиться успеха?

ответ

1

решаемые его, я открывал файл ядра, как это:

  1. -имя-файла ядра ядро ​​GDB
  2. файл определения местоположения из-бинарная

то двоичные символы был загружен, НО НЕ ОБЩЕСТВЕННЫЕ ОБЪЕКТЫ !!!!!

происходит таким образом:

  1. GDB-имя-файл ядро ​​-с местоположение из-бинарной

это привело двоичные символы, которые будут загружены НО общие объекты символы, которые будут загружены, а также !!!

благодарит за помощь.

+0

Другое примечание. Не забывайте, что общие объекты должны находиться в том же месте, где они находились на машине, на которой было создано ядро. – Robocide

1

Проверьте с помощью ldd, что ваш общий объект может быть найден.

Если нет, попробуйте ввести переменную LD_LIBRARY_PATH, чтобы задать путь и попробуйте еще раз gdb <executable> core.

Другой вариант - отредактировать конфигурацию /etc/ld.so.conf и запустить ldconfig.

+0

попытался установить LD_LIBRARY_PATH, чтобы включить путь к общему объекту, не работал ... btw ... я должен видеть библиотеку с ldd? потому что я не вижу его, когда я ldd на моем exec .... – Robocide

+0

Я думал, что ваш exec связан с этой общей библиотекой. В этом случае вы должны увидеть его имя с помощью ldd. Но вы, вероятно, не должны и должны загружать его с помощью dlopen? –

+0

да только что проверил его, его загрузили dlopen ... – Robocide

Смежные вопросы