Debugging 为什么GDB会说;“文件的体系结构未被识别”;?

Debugging 为什么GDB会说;“文件的体系结构未被识别”;?,debugging,gdb,aix,Debugging,Gdb,Aix,我正在AIX5.3上运行的aix共享库上使用gdb? 当我尝试为此文件运行gdb时 我收到一条错误消息,说“无法识别文件的体系结构” 我不知道怎么把它修好 有人知道我为什么会收到这样的消息“文件体系结构未被识别” gdb在xlc编译的其他可执行文件上运行良好 是否有一些我在编译时可能使用的选项,它与GDB不兼容。一些特定于处理器的选项 我为aix编译了共享库w xlc v9.0 谢谢 void set_gdbarch_from_file (bfd *abfd) { struct gdbarc

我正在AIX5.3上运行的aix共享库上使用gdb? 当我尝试为此文件运行gdb时 我收到一条错误消息,说“无法识别文件的体系结构” 我不知道怎么把它修好

有人知道我为什么会收到这样的消息“文件体系结构未被识别”

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

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

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

谢谢

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); } 无效的 从文件(bfd*abfd)设置 { 结构gdbarch_信息; 结构gdbarch*gdbarch; gdbarch_info_init(&info); info.abfd=abfd; info.target_desc=target_current_description(); gdbarch=gdbarch\u按信息查找(信息); if(gdbarch==NULL) 错误(u(“无法识别文件的体系结构”); 不推荐的\u当前\u gdbarch\u选择\u 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支持很少),您可以尝试使用。您可以查看gdb源代码以获得非常具体的信息(我无法真正提供)


是指向gcc AIX规范的链接。

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


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

这不是一个问题……也许您可以提供更多的细节。。。。