使用SimpleScalar运行基本代码时出错

我正在尝试使用SimpleScalar运行一个非常基本的代码只是为了testing。 这是我正在运行的代码:

#include<stdio.h> main() { int x = 0; for ( x = 0; x < 1000000; x++ ) { } printf("Hello World \n"); } 

这些是我用来编译和运行程序的简单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作为编程语言。

可执行文件“sstest”错误消息中错误幻数可能表示您的二进制文件与SimpleScaler不兼容。

您显示的编译器脚本: gcc sstest.c -o sstest用于创建普通的二进制文件。 没有任何关于应该导致编译失败的代码,或作为正常的可执行文件运行,但它不是使用SimpleScaler实用程序构建的。

这个SimpleScaler教程

要创建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.