windows – 在什么条件下我需要为x86-64汇编函数设置SEH展开信息
发布时间:2020-12-14 02:55:04 所属栏目:Windows 来源:网络整理
导读:64位 Windows ABI定义了一个通用的 exception handling mechanism,我认为它可以在C异常和结构化异常之间共享,即使在其他语言(例如C)中也是如此. 如果我正在编写一个x86-64汇编例程以在nasm中编译并链接到C或C库,那么在生成展开信息等方面我需要在Windows上做
64位
Windows ABI定义了一个通用的
exception handling mechanism,我认为它可以在C异常和结构化异常之间共享,即使在其他语言(例如C)中也是如此.
如果我正在编写一个x86-64汇编例程以在nasm中编译并链接到C或C库,那么在生成展开信息等方面我需要在Windows上做些什么? 我不打算直接在汇编代码中生成任何异常,但我认为如果用户提供的缓冲区无效,代码可能会获得访问冲突等. 我希望编写尽可能少的文件来实现这一点,特别是因为似乎nasm对生成展开信息的支持不足,并且使用MASM不是这个跨平台项目的选项.我确实需要使用(因此保存和恢复)非易失性寄存器. 解决方法
作为一般规则,Windows x64要求所有功能都提供展开信息.唯一的例外是叶函数不修改rsp而不修改任何非易失性寄存器.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |