检索Win64异常表中的所有条目 [英] Retrieving all the entries in the Win64 exception table

查看:210
本文介绍了检索Win64异常表中的所有条目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Win64异常堆栈遍历不显示条目的清晰理解,我希望能够从Win64异常表中检索所有条目-包括API调用 RtlAddFunctionTable RtlInstallFunctionTableCallback

From some clearer understanding from Win64 exception stack walking not displaying entries, I would like to be able retrieve all the entries from the Win64 exception table - including any run-time additions by the API calls RtlAddFunctionTable and RtlInstallFunctionTableCallback.

Delphi是否可能?

Is this possible from Delphi?

推荐答案

发件人:

RtlVirtualUnwind(UNW_FLAG_NHANDLER,
                   LImageBase,
                   LContext.Rip,
                   LRuntimeFunction,
                   LContext,
                   HandlerData,
                   EstablisherFrame,
                   NvContext);

HandlerData 指针包含 <有关异常表的em>特定于编译器/语言的信息 。如果从 System.pas 撤消一些详细信息,尤其是方法 _DelphiExceptionHandler FindOnExceptionDescEntry ,可以找出每个条目的用途-详细信息与 System.pas中的 TExcScope 记录定义相对

The HandlerData pointer contains compiler/language specific information about the exception table. If you reverse some details from System.pas, in particular the methods _DelphiExceptionHandler and FindOnExceptionDescEntry, it is possible to figure out what each entry is for - the details are against the TExcScope record definition in System.pas.

这篇关于检索Win64异常表中的所有条目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆