0

x86 ターゲット マシンで生成されたアプリケーション コア ファイルがあります。すべてのライブラリとバイナリが削除されるため、ターゲットでの実行時のバック トレースは非常に最小限かゼロになります。私はまだシンボル名とバックトレースを見ています。

ただし、コア ファイルをホスト マシンに移動し、ホストで x86 用の gdb を実行して sysroot を指定すると、次のようにエラーが発生します。

アドレス 0x104 のメモリをロードできません

ターゲットがバック トレースのデコードに問題がないのに、ホストが不平を言う理由のアイデア/提案はありますか? ところで、私のコードはすべて -fPIC でコンパイルされています。

4

1 に答える 1

0

私は次のことを行います: gdb-7.2 path_to_biniary 、次に sysroot を設定します

代わりにこれを試してください:

gdb /path/to/binary
(gdb) set sysroot /path/to/buildroot
(gdb) core /path/to/core_file

コアが既にロードされた後に sysroot を設定する (呼び出しで発生すると思われる) のは遅すぎます。

于 2013-02-13T01:25:33.537 に答える