Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.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++ 关于转储ram[所有语言和平台]方法的问题_C++_Python_Windows_Linux_Memory Dump - Fatal编程技术网

C++ 关于转储ram[所有语言和平台]方法的问题

C++ 关于转储ram[所有语言和平台]方法的问题,c++,python,windows,linux,memory-dump,C++,Python,Windows,Linux,Memory Dump,我最近决定编写一个应用程序,它将是市场上一些封闭源代码ram转储应用程序的开源替代方案;主要是作为一种学习经验 但是我不完全确定从哪里开始(对于Windows机器)。我想我必须使用在内核级别执行的例程在内存中迭代,但是如何在拍摄快照时阻止机器执行任何操作,或者尽可能少地执行操作,甚至像那样访问ram,我都迷路了 任何有经验或建议的人都将不胜感激,这是一个非常有趣的话题。对于Windows,您需要的一切都在dbghelp.dll-参考中 您可以直接调用Minidump函数,也可以手动遍历所有结构(

我最近决定编写一个应用程序,它将是市场上一些封闭源代码ram转储应用程序的开源替代方案;主要是作为一种学习经验

但是我不完全确定从哪里开始(对于Windows机器)。我想我必须使用在内核级别执行的例程在内存中迭代,但是如何在拍摄快照时阻止机器执行任何操作,或者尽可能少地执行操作,甚至像那样访问ram,我都迷路了


任何有经验或建议的人都将不胜感激,这是一个非常有趣的话题。

对于Windows,您需要的一切都在dbghelp.dll-参考中

您可以直接调用Minidump函数,也可以手动遍历所有结构(这需要做很多工作,但更符合您描述的教育练习)


对于过程控制,上的信息应该很有用。

有一些可能会有所帮助。不过,我自己还没有使用过它,

这里有一个关于暂停进程以便您可以使用它的快速教程。

下面是一些用于查找要查看的进程或窗口的函数

  • GetWindowThreadProcessId
  • 枚举窗口
  • 任务列表
  • GetCurrentProcess
  • 要读取内存,可以使用以下api函数

  • 开放进程
  • 读处理存储器

  • 谷歌搜索这些应该会给你一个好的开始

    谢谢你的链接,看起来这应该是非常有帮助的。再想一想,dbghelp.dll看起来不适合这项工作,这对于用户模式内存转储很好;但我需要将物理内存写入磁盘。