Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.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
如何在所有平台上使用python脚本触发应用程序的核心转储?_Python_Linux_Windows_Dump_Core - Fatal编程技术网

如何在所有平台上使用python脚本触发应用程序的核心转储?

如何在所有平台上使用python脚本触发应用程序的核心转储?,python,linux,windows,dump,core,Python,Linux,Windows,Dump,Core,我有一个python脚本,支持linux、windows和未来的mac OS。 我希望在python脚本中运行应用程序,然后从进程id触发一个核心转储 通过在linux平台上的python子流程中调用gcore,可以很容易地实现这一点。 如何在windows上执行此操作? 将来,我们还需要支持MacOSX 最好的方法是什么 可能使用python不是正确的方法 我们可以使用shell脚本在windows上安装cygwin。 windows上是否有任何gcore等价物? 或者我们应该改用.bat文件

我有一个python脚本,支持linux、windows和未来的mac OS。 我希望在python脚本中运行应用程序,然后从进程id触发一个核心转储

通过在linux平台上的python子流程中调用gcore,可以很容易地实现这一点。 如何在windows上执行此操作? 将来,我们还需要支持MacOSX

最好的方法是什么

可能使用python不是正确的方法

我们可以使用shell脚本在windows上安装cygwin。 windows上是否有任何gcore等价物? 或者我们应该改用.bat文件


但如果可能的话,我希望在所有平台上都有一个通用脚本或python脚本,并且不希望维护不同的脚本。

MS Windows上没有“核心转储”这样的东西。在任何平台上生成异常时,用零除都可以。您可以在Windows上使用随Windows 7+分发的dbghelp.dll库创建转储文件(对于XP,它位于SDK调试工具中)。您可以使用ctypes调用,例如从ctypes import*调用
dbghelp=windell('dbghelp')
dbghelp.MiniDumpWriteDump(c\u void\u p(-1),os.getpid(),msvcrt.get\u osfhandle(dumpfile.fileno()),0,无,无)
。但这实际上应该从一个单独的看门狗过程中完成。转储文件可以加载到诸如WinDbg或cdb之类的调试器中,例如
cdb-z core.dmp