Почему GDB говорит “Архитектура файла не распознана”?

StackOverflow https://stackoverflow.com/questions/963689

  •  12-09-2019
  •  | 
  •  

Вопрос

Я использую gdb в общей библиотеке aix, работающей на aix 5.3?Когда я пытаюсь запустить gdb для этого файла я получаю сообщение об ошибке ""Архитектура файла не распознана" Не знаю, как это исправить.

Кто-нибудь знает, почему я получаю это сообщение ""Архитектура файла не распознана"?.

gdb отлично работает с другими исполняемыми файлами, скомпилированными xlc.

Есть ли какая-то опция, которую я, возможно, использовал при компиляции, которая несовместима с GDB.какая-то опция, зависящая от процессора.

Я скомпилировал общую библиотеку w xlc версии 9.0 для aix.

Спасибо.

Это было полезно?

Решение

void
set_gdbarch_from_file (bfd *abfd)
{
  struct gdbarch_info info;
  struct gdbarch *gdbarch;

  gdbarch_info_init (&info);
  info.abfd = abfd;
  info.target_desc = target_current_description ();
  gdbarch = gdbarch_find_by_info (info);

  if (gdbarch == NULL)
    error (_("Architecture of file not recognized."));
  deprecated_current_gdbarch_select_hack (gdbarch);
}

Это фактический код GDB, о котором идет речь (gdb/arch-utils.c: 530-544).

Информация, переданная указателю gdbarch, кажется недопустимой.Это вызвано тем, что gdb_find_by_info возвращает нулевой указатель, а find_arch_by_info (gdb/gdbarch.c:3656) возвращает нулевой указатель.

Это в основном означает то, что там написано:GDB не удалось идентифицировать архитектуру файла.Это, по-видимому, Обычный проблема для xlc, даже в последних версиях gdb.

XLC и gdb, насколько я помню и понимаю, не очень хороши, когда дело доходит до условий совместимости (поддержка AIX минимальна), вы могли бы попробовать использовать Компилятор Gnu C .Вы могли бы взглянуть на исходные тексты GDB для ОЧЕНЬ конкретная информация (которую я на самом деле не могу вам предоставить).

Здесь это ссылка на специфику gcc-AIX.

Другие советы

Вы не запускаете GDB в общей библиотеке, вы запускаете его в исполняемый файл.

Если исполняемый файл загрузит вашу общую библиотеку, GDB узнает об этом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top