2

インテル Bi-Endian コンパイラーでコンパイルされたコードをデバッグしようとすると、データの表示に問題が発生します。これは、私のデータがビッグエンディアンとしてマークされているようです。

表示しようとしているデータは で__be_x、 はxですint

値が 1 のときに出力しようとするとx、この値が得られます。おそらく、この値がビッグ エンディアンではなくリトル エンディアンとして解釈されているためです。

(gdb) p __be_x
$4 = 16777216
(gdb) x /4b
0xf850aa0 <__be_x>:    0x00    0x00    0x00    0x01

したがって、ビッグエンディアンとして解釈される値は 1 です。

GDBにはこれに対する何らかのパッチがあると思いますが、見つけられないようです。GDBにデータを認識させる方法を知っていますか?

4

1 に答える 1

0

この機能については知りません-同じプログラムでビッグエンディアンとリトルエンディアンの両方のタイプを使用できる場合、DWARF拡張が必要になると思います-しかし、「エンディアンを設定」してみてください。

また、gdb のヘルプ テキストを検索する "apropos" コマンドもお勧めです。上記のコマンドは、「apropos endian」で簡単に見つけることができます。

于 2013-10-04T01:54:31.797 に答える