Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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
Debugging 恢复内存转储_Debugging_Memory Dump - Fatal编程技术网

Debugging 恢复内存转储

Debugging 恢复内存转储,debugging,memory-dump,Debugging,Memory Dump,如果在没有调试器的计算机上进行测试,比如说在客户端的计算机上,我遇到了一个可能破坏了程序状态但没有实际崩溃的错误,我知道我可以使用Windows任务管理器进行内存转储(右键单击进程名,创建转储文件) 我可以将它们与WinDbg一起使用,在内存中四处查看,等等,但对我来说最有用的是能够将转储恢复到内存中,这样我就可以继续与程序交互。这可能吗?如果是,怎么做?是否有一个工具可以还原它,或者我需要自己编写。我发现我可以用Hyper-V快照来实现这一点。如果我在虚拟机中运行我的程序,我可以选择转储内存、

如果在没有调试器的计算机上进行测试,比如说在客户端的计算机上,我遇到了一个可能破坏了程序状态但没有实际崩溃的错误,我知道我可以使用Windows任务管理器进行内存转储(右键单击进程名,创建转储文件)


我可以将它们与WinDbg一起使用,在内存中四处查看,等等,但对我来说最有用的是能够将转储恢复到内存中,这样我就可以继续与程序交互。这可能吗?如果是,怎么做?是否有一个工具可以还原它,或者我需要自己编写。

我发现我可以用Hyper-V快照来实现这一点。如果我在虚拟机中运行我的程序,我可以选择转储内存、创建快照、在必要时传输转储、稍后返回、还原快照并继续程序。

典型的用户模式转储或迷你转储包含的信息不足以执行此操作。虽然它们包含所有用户模式内存,但不包含内核内存,因此转储文件或网络套接字等内核资源的开放句柄将不包括在转储中(即使是,硬盘很可能已更改,因此仅尝试写入硬盘可能会更严重地损坏您的系统)


我看到的恢复内存转储的唯一方法是恢复完整内存和所有其他状态,如硬盘状态,这可以通过大多数虚拟机软件完成(但是,这将在恢复时断开所有网络连接;非常感谢,大多数程序可以比丢失文件句柄更好地处理丢失的网络连接).

@m0skit0我更新了我的问题。你能告诉我怎么做吗?我不知道你在用什么样的Windows。对于Linux。