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)
{
  struct gdbarch_info 情報;
  struct gdbarch *gdbarch;

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

  もし (gdbarch == NULL)
    error (_("ファイルのアーキテクチャが認識されません。"));
  deprecated_current_gdarch_select_hack (gdarch);
}

これが問題の実際の G​​DB コードです (gdb/arch-utils.c:530-544)。

gdbarch ポインターに渡された情報が無効のようです。これは、gdb_find_by_info が NULL ポインターを返すことが原因であり、find_arch_by_info (gdb/gdbarch.c:3656) が NULL ポインターを返すことが原因です。

基本的には、GDB がファイルのアーキテクチャを識別できなかったことを意味します。これは、最近の gdb バージョンでも、xlc でよくある問題のようです。

XLC と gdb は、私が覚えている限りでは、互換性に関してはあまり良くありません (AIX のサポートは最小限です)。Gnu C コンパイラを使用してください。私が本当にあなたに与えることができないこと)。

これはgcc -AIX 仕様へのリンクです。

于 2009-06-08T22:53:50.423 に答える