µC-OS/II を実行する ColdFire CPU を搭載した組み込みボードがあります。組み込みプログラムがクラッシュすると、CPU は組み込みフラッシュの RAM 全体をダンプ (またはコピー) します。次に、(フラッシュにダンプされた) RAM コンテンツを単純な .bin ファイルに取得する手順があります。デバッグする場合は、GDB (m68k-elf-gdb.exe) と .elf ファイルを組み合わせて使用します。例えば :
$ gdb our_elf_file
(gdb) print some_var
Cannot access memory at address 0x30617890
(gdb) ptype some_var
type = unsigned int
(gdb)
これにより、変数のアドレスを知ることができます。次に、前に指定されたアドレスで単純なオフセット操作を実行し、特定の場所で RAM ダンプを読み取ります。たとえば、0x30617890にあるsome_varを読み取りたい場合、ダンプが0x20000000から始まる RAM コンテンツを表していることがわかります。その後、オフセット ( 0x30617890 - 0x20000000 ) で .bin ファイルの 4 バイトを読み取ります。(他の目的で objdump (m68k-elf-objdump.exe) を使用することもあります)。
私はこの種のものにまったく慣れていないので、私の質問はばかげているかもしれませんが、RAMの内容がどこにあるかをgdbに伝える方法はありますか?