如何运行在Linux上动态链接的ELF 64位LSB可执行文件UCB RISC-V,版本1GNU / Linux

问题描述

我正在尝试使用目标Architecture RISC-V对用C ++编写的代码进行性能分析。该代码已使用RISC-V GNU工具链进行了交叉编译。我的可执行文件是unit_tests“ ELF 64位LSB可执行文件,UCB RISC-V,版本1(GNU / Linux),动态链接,对于GNU / Linux 4.15,是/lib/ld-linux-riscv64-lp64d.so.1。 0,使用debug_info,未剥离”,该信息是使用file命令检索的。

我想做的是使用gprof对它进行性能分析。但是要执行gprof,需要生成gmon.out,要生成gmon.out,应首先运行可执行文件。我无法在某些不同的体系结构中运行其他体系结构的二进制elf。我需要为此建议在哪个模拟器或模拟器上运行,或者我可以在其上运行?

我尝试使用以下链接安装qemu:

https://www.google.com/url?q=https://risc-v-getting-started-guide.readthedocs.io/en/latest/linux-qemu.html&sa=D&source=hangouts&ust=1597422417473000&usg=AFQjCNERr6pHYmj0SU6an3WkBRGQI52aTw

,但无法成功安装。 也尝试过使用秒杀,但收到“ bad synccall”错误。任何潜在客户如何解决此问题。

解决方法

我在用户模式下使用qemu解决了这个问题。请按照以下链接中的说明进行操作: Manual-qemu-user

我可以在其中运行为目标RISC-V生成的二进制小精灵,该二进制小精灵可以在x86 Linux计算机上运行。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...