0

我在 aix 5.3 上运行的 aix 共享库上使用 gdb?当我尝试为此文件运行 gdb 时,我收到一条错误消息,提示“无法识别文件架构”不知道如何修复此问题。

有谁知道为什么我会收到此消息“”文件架构无法识别“?

gdb 在 xlc 编译的其他可执行文件上运行良好。

是否有一些我在编译时可能使用过的选项,它与 GDB.some 处理器特定选项不兼容。

我为 aix 编译了共享库 w xlc v9.0。

谢谢。

4

2 回答 2

2

您不在共享库上运行 GDB,而是在可执行文件上运行它。

如果可执行文件加载了你的共享库,GDB 就会知道它。

于 2009-06-09T01:08:18.733 回答
0
空白
set_gdbarch_from_file (bfd *abfd)
{
  结构 gdbarch_info 信息;
  结构 gdbarch *gdbarch;

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

  如果(gdbarch == NULL)
    错误(_(“文件架构无法识别。”));
  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 编译器。您可以查看 GDB 源以获得非常具体的信息(我真的不能给你)。

是 gcc-AIX 细节的链接。

于 2009-06-08T22:53:50.423 回答