gpt4 book ai didi

c++ - 通过 SEH 处理访问冲突

转载 作者:行者123 更新时间:2023-11-28 00:44:35 24 4
gpt4 key购买 nike

我创建了一个内存管理器,它分配由两个页面包围的内存,并带有 PAGE_NOACCESS 保护。我调用了一个在 SEH block 中使用此内存的函数,并捕获了此 block 中发生的 ACCESS_VIOLATION 异常(如果有)。现在,在我的异常处理程序中,是否可以检索程序无权访问的地址?我知道您可以获得指向错误指令的指针,但您必须实际解析程序集?

这样我就可以知道违规是在我 protected 内存中引起的(我可以从中继续执行;这是预期的行为)还是在另一个(未知的)地方,我可能不得不从那里终止过程。我考虑过使用 PAGE_GUARD 保护来代替,这将帮助我确定访问的内存可能来 self 的 protected 内存,但这并不确定(即堆栈后的内存受 PAGE_GUARD afaik 保护)。

感谢任何帮助:)

最佳答案

根据 the EXCEPTION_RECORD documentation,尝试的地址存储在 ExceptionInformation[1] 中.

关于c++ - 通过 SEH 处理访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16965711/

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