GDB dump mem example和命令

Posted 虚生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GDB dump mem example和命令相关的知识,希望对你有一定的参考价值。

使用方法:

You can use the commands dumpappend, and restore to copy data between target memory and a file. The dump and append commands write data to a file, and the restore command reads data from a file back into the inferior‘s memory. Files may be in binary, Motorola S-record, Intel hex, or Tektronix Hex format; however, gdb can only append to binary files.

dump [format] memory filename start_addr end_addr
dump [format] value filename expr
Dump the contents of memory from start_addr to end_addr, or the value of expr, to filename in the given format.

The format parameter may be any one of:

binary
Raw binary form. 
ihex
Intel hex format. 
srec
Motorola S-record format. 
tekhex
Tektronix Hex format.

gdb uses the same definitions of these formats as the gnu binary utilities, like `objdump‘ and `objcopy‘. If format is omitted, gdb dumps the data in raw binary form.

 

append [binary] memory filename start_addr end_addr
append [binary] value filename expr
Append the contents of memory from start_addr to end_addr, or the value of expr, to the file filename, in raw binary form. (gdb can only append data to files in raw binary form.)

 

restore filename [binarybias start end
Restore the contents of file filename into memory. The restore command can automatically recognize any known bfd file format, except for raw binary. To restore a raw binary file you must specify the optional keyword binary after the filename.

If bias is non-zero, its value will be added to the addresses contained in the file. Binary files always start at address zero, so they will be restored at address bias. Other bfd files have a built-in location; they will be restored at offset bias from that location.

If start and/or end are non-zero, then only data between file offset start and file offset end will be restored. These offsets are relative to the addresses in the file, before the bias argument is applied.

举个例子:

dump binary memory result.bin 0x200000000 0x20000c350

This will give you a plain binary dump int file result.bin. You can also use the following to dump it in hex format:

dump ihex memory result.bin 0x200000000 0x20000c350

Using the dump command is much clearer than using the gdb logging hack (which even did not work for me somehow)

 

参考文档: https://stackoverflow.com/questions/16095948/gdb-dump-memory-save-formatted-output-into-a-file

以上是关于GDB dump mem example和命令的主要内容,如果未能解决你的问题,请参考以下文章

在 gdb 中将某段内存 dump 保存到文件中

corejump 怎么用gdb调试

在GDB中如何从文件中填充内存

如何使用 gdb 和 core-dump 文件查找此分段错误的原因?(GDB 的限制)

什么是core dump linux下用core和gdb查询出现"段错误"的地方

Linux Dump 内存