gpt4 book ai didi

windows - 来自另一个进程的 MiniDumpWriteDump

转载 作者:行者123 更新时间:2023-12-05 08:01:28 26 4
gpt4 key购买 nike

我想使用 MiniDumpWriteDump 为我的应用程序生成崩溃日志。 Microsoft 建议从另一个进程执行转储,这正是我正在尝试做的。我遇到的问题是将 PEXCEPTION_INFORMATION 结构从父进程传递到子进程。问题是父进程拥有这个结构的内存,我需要把它给 child 。我找到了这篇文章

How do I get at the exception information when using MiniDumpWriteDump out-of-process?

接受的答案是 “指针在看门狗进程的上下文中无效并不重要。” 这让我相信我可以简单地传递 PEXCEPTION_INFORMATION 我未处理的异常过滤器接收到子进程的指针,Windows 将从父进程读取它。这没有发生,所以我真的不知道该怎么做,目前子进程崩溃了,大概是因为 Windows 试图访问这个内存,就好像它属于 child 一样。我显然在这里遗漏了一些东西,但我不确定是什么。我使用管道将数据发送到子进程,上述问题的答案是使用内存映射文件有效,但我不太确定为什么,或者我是否正确理解了答案。

最佳答案

调试要转储的进程。

typedef struct _EXCEPTION_POINTERS {
PEXCEPTION_RECORD ExceptionRecord;
PCONTEXT ContextRecord;
} EXCEPTION_POINTERS, *PEXCEPTION_POINTERS;

ExceptionRecord可以通过WaitforDebugEventEx从EXCEPTION_DEBUG_EVENT得到。

ContextRecord可以通过OpenThread和GetThreadContext从DebugEvent获取threadid

关于windows - 来自另一个进程的 MiniDumpWriteDump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13934957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com