(应用程序二进制接口)指定程序,库和操作系统之间的低级接口。例如。哪些寄存器用于传递函数参数。
我想生成包含的标头的符号名称,而不调用任何函数。 例如,如果我有一个标头 mylib.hpp: 命名空间 ns { 类我的类{ 民众: 无效打印H...
哪个发行版在 Amazon AWS Graviton 上具有最佳的交叉兼容性?
我正在寻找 Amazon AWS Graviton 上最好的 Linux 发行版来编译应用程序。对我来说最重要的是我的应用程序将在大多数 AWS Arm64 发行版上运行。它
x86、armeabi-v7a、armeabi 设备上的 arm64-v8a 应用程序出现 java.lang.UnsatisfiedLinkError 异常
我时不时地在我们的生产应用程序中收到 java.lang.UnsatisfiedLinkError 异常。 我在这里分享一个例子。以下设备接收了我们应用程序的 arm64-v8a 版本,然后崩溃于
我正在尝试学习 ELF 格式并正在实现一个 ELF 解析器。到目前为止,我已经实现了 ELF 标头解析器,并且正在解析段,特别是 .text 段。我被困在这里
特别是,我在库界面中得到了以下代码: 类型定义枚举 { 状态1, 状态2, 状态3, 状态4, 状态5, 状态错误=-1, } 状态; 我严格禁止破坏 ABI。
System V ABI 和 C++ Itanium ABI 之间的差异
谁能帮我澄清 System V ABI 和 C++ Itanium ABI 之间的区别? 据我了解,System V ABI 设置了如何进行系统调用并与硬件交互的约定,以及 C++
我搜索了一种在 MultiversX 区块链上查找智能合约的视图函数并与之交互的方法。 我有很多问题: 如何反转 wasm 智能合约文件? 如何获取abi.json...
我有一个包含一些数据的 Rust 枚举。我想将它打包成尽可能少的字节。我尝试像这样使用 repr: #[代表(u8)] 枚举 MyEnum { 选项A(u32), 选项B(u32), 没有什么, } fn妈...
由于 ARM64 中缺少 PUSH 和 POP 指令,我在理解 SP 在 ARM64 中如何工作时遇到了问题。 如果我要 PUSH/POP,SP 是否会减少/增加 4、8 或 16 个字节? 我是
在x86_64系统上,当返回值小于等于16字节时,通过寄存器RAX和RDX传递,当返回值大于16字节时,通过寄存器传递
在 macOS 11 (dynamic_cast) 上运行时,在 macOS 13.6 (clang 15) 上运行应用程序会崩溃
当我在构建服务器上将 xcode 升级到 15 时出现问题。 链接到二进制文件的应用程序“不久前”构建(tm) - 现在在 macOS11 或更早版本上运行时会崩溃。该...
如何使用 Foundry/forge 在本地生成智能合约的 ABI?
我在本地有一个包含多个智能合约的项目,我想生成我的 sc.sol 智能合约的 ABI。我确实希望使用伪造或铸造厂在本地执行此操作。 我知道有可能...
哪些 C 说明符可能会导致调用者和被调用者之间 ABI 不兼容?
假设有一个文件的函数声明与另一个文件中的实际定义不同,即 文件A.c 短 foo(); int main(){ foo(); } 文件B.c int foo(){ //一些合作...
如何在 Linux 主机上的 gnuforth 代码中触发大写锁定
如何从 gnu-forth 中的代码触发大写锁定? 目前作为我使用的临时解决方案 :大写“xdotool key Caps_Lock”系统; 我正在寻找完整的 gforth 代码解决方案 e...
即使我们在 gcc 中使用 -mno-red-zone 标志,红色区域仍然存在吗?
我的系统:在 x86_64 上运行的 Ubuntu 22.04.3。海湾合作委员会版本 11.4.0 我读到 System V ABI 强制要求使用红色区域。来自海湾合作委员会手册: 红色区域是 x86-64 ABI 强制规定的,它是 128-...
Ubuntu 上的 System V ABI 是否将返回地址放置在调用者函数的框架内或被调用者函数的框架内?
我的系统:在 x86_64 上运行的 Ubuntu 22.04.3。海湾合作委员会版本 11.4.0 我问这个问题是因为就其所在的框架而言,返回地址似乎有两种不同的表示形式(
为什么 rsp 寄存器在叶函数中不像在任何其他函数的开头那样递减?
以下是有关我的系统的一些信息: 在 Intel x86_64 上运行的 Ubuntu 22.04.3; ggc 版本 11.4.0; 我注意到 rsp 寄存器在叶函数中并没有像在非叶函数中那样递减
在 Android 团队发布的与 Gradle 优化相关的各种文章和视频中,我看到了 ABI 更改和非 ABI 更改的构建性能比较。它是什么意思以及是什么
我想检查一下这个问题。 这是应用程序库中的回调定义(例如 Platfrom 版本 1.0) typedef void (*module_change_callback)(int state); 之后, 我想改变...