Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 转储进程的内存_C_Linux_Bash_Memory Dump - Fatal编程技术网

C 转储进程的内存

C 转储进程的内存,c,linux,bash,memory-dump,C,Linux,Bash,Memory Dump,读取/proc/$PID/maps时,您将获得映射的内存区域。 有办法甩掉这个地区吗 $ cat /proc/18448/maps ...[snip]... 0059e000-005b1000 r-xp 00000000 08:11 40 /usr/local/lib/libgstlightning.so.0.0.0 005b1000-005b2000 r--p 00012000 08:11 40 /usr/local/lib/libgstlightning.so

读取/proc/$PID/maps时,您将获得映射的内存区域。 有办法甩掉这个地区吗

$ cat /proc/18448/maps
...[snip]...
0059e000-005b1000 r-xp 00000000 08:11 40         /usr/local/lib/libgstlightning.so.0.0.0
005b1000-005b2000 r--p 00012000 08:11 40         /usr/local/lib/libgstlightning.so.0.0.0
005b2000-005b3000 rw-p 00013000 08:11 40         /usr/local/lib/libgstlightning.so.0.0.0
...[snip]...

谢谢

您可以将gdb连接到进程,然后从位置L开始转储长度为X个字的内存区域,如下所示:
X/Xw L

启动流程时附加gdb很简单:
gdb./executable
然后
run
。如果需要连接到正在运行的进程,请启动gdb,然后
gdb attach pid
,其中pid是您关心的进程ID。

使用dd(1):

不!使用
PTRACE ATTACH
呼叫。然后打开,搜索区域偏移,并读取
/proc/maps
中给出的区域长度

这是一个在C中实现的函数,这是一个在Python()中实现的函数。最后是一场比赛


享受吧

谢谢,:)我还没有考虑过。您可以使用命令行参数附加到正在运行的进程:
gdb-p
。很高兴知道。我只对远程目标认真使用过gdb。
sudo dd if=/dev/mem bs=1 skip=$(( 16#0059e000 - 1 )) \
        count=$(( 16#005b1000 - 16#0059e000 + 1)) | hexdump -C