2

ARM コア シミュレータにロードvmlinuxして使用しようとしています。gdb

しかし、なぜ私が得られるのか理解できませんUndefined target command: "sim".:

シェル出力は次のとおりです。

$ arm-eabi-gdb vmlinux
GNU gdb (GDB) 7.3.1-gg2
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=x86_64-linux-gnu --target=arm-linux-android".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /repo/kernel/kernel/vmlinux...done.
(gdb) target sim
Undefined target command: "sim".  Try "help target".
(gdb) help target
Connect to a target machine or process.
The first argument is the type or protocol of the target machine.
Remaining arguments are interpreted by the target protocol.  For more
information on the arguments for a particular protocol, type
`help target ' followed by the protocol name.

List of target subcommands:

target core -- Use a core file as a target
target exec -- Use an executable file as a target
target extended-remote -- Use a remote computer via a serial line
target record -- Log program while executing and replay execution from log
target record-core -- Log program while executing and replay execution from log
target remote -- Use a remote computer via a serial line
target tfile -- Use a trace file as a target
4

2 に答える 2

4

あなたのプロセスは、この電子メールとマニュアルのgdb ターゲット コマンドページに従って正しいものです。

ただし、gdb configure スクリプトにはオプション--disable-simがあります。crosstool -ngプロジェクトは、デフォルトでこのオプションを使用します。ほとんどのクロス コンパイラは、このプロジェクト注 1を使用してビルドされます。これは、手動で行うにはかなり長いプロセスです。gdbにシミュレーターが組み込まれていない可能性は十分にあります。

gdb構成を出力するコマンド ライン オプションはないようです。ただし、実行すると、 gdbsimオプションがあるstrings -n 3 arm-eabi-gdb | grep -iw simかどうかを確認する必要があります。gdbにsimオプションがない場合、コマンドは何も返しません。

注 1: 少なくとも、Linaro、Ubuntu、Debian、および Ltib はcrosstool-ngを使用します。Androidスイートについてはわかりません。

于 2013-04-25T14:39:30.087 に答える
3

GDB の ARM シミュレータは、Linux カーネルを実行できる ARM アプリケーション プロセッサをエミュレートしません。たとえば、メモリ管理ユニットをエミュレートしないと思います。Linux を実行する場合は、代わりに QEMU とその組み込み gdb サーバーを使用してください: https://plus.google.com/100386424363328269117/posts/RhdQmjz4gBJ

于 2013-04-28T21:08:22.020 に答える