C++ 我想在调试核心文件时恢复GDB中的内存

C++ 我想在调试核心文件时恢复GDB中的内存,c++,c,linux,debugging,gdb,C++,C,Linux,Debugging,Gdb,我想在调试核心文件时恢复GDB中的内存。 我在进程运行时检查了GDB中的还原功能。 这是成功 但我想在调试核心文件时恢复内存。 我可以使用core_过滤器并选择段。但它是一个非常大的核心文件。 所以我使用了一种转储和恢复内存的方法 但当进程正在运行时,这是可能的。 我想在进程未运行时恢复内存。 我需要调试核心转储文件的方法 我可以用这种方法恢复内存吗 你知道其他的方法吗 GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1 Copyright (C) 2016

我想在调试核心文件时恢复GDB中的内存。 我在进程运行时检查了GDB中的还原功能。 这是成功

但我想在调试核心文件时恢复内存。 我可以使用core_过滤器并选择段。但它是一个非常大的核心文件。 所以我使用了一种转储和恢复内存的方法

但当进程正在运行时,这是可能的。 我想在进程未运行时恢复内存。 我需要调试核心转储文件的方法

我可以用这种方法恢复内存吗

你知道其他的方法吗

GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
...
Reading symbols from main...done.
[New LWP 19274]
Core was generated by `./main'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x000000000040053a in main () at main.c:6
6       *a = 3;
(gdb) restore memory_dump binary &array 0 40
You can't do that without a process to debug.

但是如果没有进程运行,就没有内存…@Jean BaptisteYunès当gdb加载一个核心文件时,它会用核心文件创建时的内容设置虚拟内存,因此可以检查变量和地址内容。虽然我不确定该内存是否可以修改,因为我从来没有理由想要这样的东西。@ascheppler Right核心文件是内存的捕获,但是如果不运行相应的进程,为什么要修改图片?我可以理解,在调试正在运行的进程时,可能会修改内存,但如果不运行,这意味着什么?@aschepler它使用创建核心文件时的内容设置虚拟内存,因此可以检查变量和地址内容。-不,它不是。@EmployedRussian我不知道它是如何实现的,所以虚拟内存可能是不准确的。我的意思是,它的行为就像是以某种方式加载的一样,因此使用原始进程中的变量或地址的命令可以提供类似于附加到程序时的视图。但是如果没有进程运行,就没有内存…@Jean BaptisteYunès当gdb加载核心文件时,它使用创建核心文件时的内容设置虚拟内存,因此可以检查变量和地址内容。虽然我不确定该内存是否可以修改,因为我从来没有理由想要这样的东西。@ascheppler Right核心文件是内存的捕获,但是如果不运行相应的进程,为什么要修改图片?我可以理解,在调试正在运行的进程时,可能会修改内存,但如果不运行,这意味着什么?@aschepler它使用创建核心文件时的内容设置虚拟内存,因此可以检查变量和地址内容。-不,它不是。@EmployedRussian我不知道它是如何实现的,所以虚拟内存可能是不准确的。我的意思是,它的行为就像是以某种方式加载的,因此使用原始进程中的变量或地址的命令可以提供类似于附加到程序时的视图。