当其他动态库发生异常时,ABI/C++runtime 说了什么?
What ABI/C++runtime said when exception has happened in oher dynamic library?
简介:
"Binary application" 从 "dynamic library" 调用另一个函数。
现实生活中异常处理是函数ABI的一部分吗?
详细
调用约定包括如下内容:
- 如何在函数 CALL 之前推送参数以及将参数推送到何处
- 传递参数的寄存器和return代码。
- 被叫保存寄存器
- 哪些寄存器是临时的,不需要保存
- 如何处理一些不常见的寄存器(ST*、XMM*)
但是万一出现异常呢?
我对用 C++ 语言编写的应用程序和动态库更感兴趣
并通过相同或不同的工具链编译。
在异常下我的意思是不是ALU,也不是MMU异常。它只是通过 C#/C++ 中的 "throw" 或 python 中的 "raise" 创建的程序异常。
是的,这是 C++ 的 ABI 的一部分。否则无法安全地跨越二进制文件之间的边界抛出异常。
简介:
"Binary application" 从 "dynamic library" 调用另一个函数。
现实生活中异常处理是函数ABI的一部分吗?
详细
调用约定包括如下内容:
- 如何在函数 CALL 之前推送参数以及将参数推送到何处
- 传递参数的寄存器和return代码。
- 被叫保存寄存器
- 哪些寄存器是临时的,不需要保存
- 如何处理一些不常见的寄存器(ST*、XMM*)
但是万一出现异常呢?
我对用 C++ 语言编写的应用程序和动态库更感兴趣 并通过相同或不同的工具链编译。
在异常下我的意思是不是ALU,也不是MMU异常。它只是通过 C#/C++ 中的 "throw" 或 python 中的 "raise" 创建的程序异常。
是的,这是 C++ 的 ABI 的一部分。否则无法安全地跨越二进制文件之间的边界抛出异常。