gpt4 book ai didi

c++ - 使用 Intel Quark 的 Linux 共享库中的非法指令

转载 作者:IT王子 更新时间:2023-10-29 01:14:25 27 4
gpt4 key购买 nike

我有一个 linux“.a”库,它被编译用于 x86。我没有这个库的源代码,程序员也不给我。我在具有这种架构的 PC 上运行我的程序没有问题,但是最近我买了一个带有 Intel Quark 处理器的嵌入式系统。该处理器具有精简的指令集,因此当我编译我的程序并尝试运行它时,我收到了一条明确的消息:“非法指令”。

我知道这不是内存违规问题,因为当我使用 GDB 对其进行调试时,它在带有操作码(如 CMOVE)的指令中完全失败,它属于 Pentium Pro 处理器中引入的 CMOVxx 指令集。在我的嵌入式 linux 系统 (Ubuntu 14.04)/proc/cpuinfo "flags"字段中没有显示 "cmov",所以这是确认的。

那么,我该如何克服这个问题呢?

是否存在任何类型的包装器来将此操作码转换为另一个夸克友好指令?我知道如何在 Windows 中使用 OllyDbg(它允许 ASM 修补和保存可执行文件)来做到这一点,但我知道在 Linux 中没有类似的解决方案。

欢迎提出任何建议。

最佳答案

  1. 你可以试试this uncommitted kernel patch它在内核中模拟 CMOV。

  2. 您可以安装一个SIGILL 信号处理器和emulate the instruction仅在您的程序中。

关于c++ - 使用 Intel Quark 的 Linux 共享库中的非法指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25991456/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com