我正在尝试使用SimpleScalar运行一个非常基本的代码来进行测试。这是我正在运行的代码:
#include<stdio.h>
main()
{
int x = 0;
for ( x = 0; x < 1000000; x++ ) {
}
printf("Hello World \n");
}
这些是我用来编写程序并使用simple-sim运行到名为results的文件夹的行。
gcc sstest.c -o sstest
./ sim-safe -redir:sim results / hello.sim.out -redir:prog results / hello.prog.out sstest。
但是,程序输出为空,模拟器输出出现以下错误:
致命:可执行文件中的错误魔法数字'sstest'(不是可执行文件)
在这个过程中我有什么问题吗?非常感谢你的帮助。我也使用Ubuntu作为操作系统,使用c作为编程语言。
答案 0 :(得分:1)
可执行文件中的错误幻数错误消息可能表明您的二进制文件与 SimpleScaler 不兼容。
您显示的编译器脚本:gcc sstest.c -o sstest
用于创建普通二进制文件。没有任何关于应该导致编译失败或作为普通可执行文件运行的代码,但它不是使用SimpleScaler实用程序构建的。
来自 this SimpleScaler tutorial :
要创建SimpleScaler二进制文件,特别是使用GCC的C程序,您可以使用:
ssbig-na-sstrix-gcc -g -O -o foo foo.c -lm
在同一个链接中,要在程序构建后运行程序,您可以使用:
sim-safe [-sim opts] foo [-program opts]
这似乎遵循您在帖子中显示的内容的形式:
./sim-safe -redir:sim results/hello.sim.out -redir:prog results/hello.prog.out sstest.