Почему GDB говорит «Архитектура файла не распознана»? - PullRequest
0 голосов
/ 08 июня 2009

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

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

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

Есть ли какая-то опция, которую я мог бы использовать при компиляции, которая не совместима с опцией, специфичной для процессора GDB.some.

Я скомпилировал общую библиотеку wxlc v9.0 для aix.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 09 июня 2009

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

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

0 голосов
/ 09 июня 2009
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 возвращает указатель NULL, а также причиной того, что find_arch_by_info (gdb / gdbarch.c: 3656) возвращает указатель NULL.

Это в основном означает то, что говорится: GDB не может определить архитектуру файла. Похоже, что это общая проблема для xlc, даже в последних версиях GDB.

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

Здесь является ссылкой на особенности gcc-AIX.

...