检索Win64异常表中的所有条目 [英] Retrieving all the entries in the Win64 exception table
问题描述
从 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屋!