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

error while running basic code with SimpleScalar

我正在尝试使用 SimpleScalar 来 运行 一个非常基本的代码,仅用于测试。这是我 运行ning:

的代码
#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.

但是,程序输出为空,模拟器输出报如下错误:

fatal: bad magic number in executable `sstest' (not an executable)

我是不是在这个过程中做错了什么?非常感谢您的帮助。我还使用 Ubuntu 作为操作系统,使用 c 作为编程语言。

您的 可执行文件 `sstest' 中的错误幻数 错误消息可能表明您的二进制文件与 SimpleScaler 不兼容.

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

来自this SimpleScaler tutorial:

要创建 SimpleScaler 二进制文件,特别是使用 GCC 的 C 程序,您可以使用:

ssbig-na-sstrix-gcc -g -O -o foo foo.c -lm

从相同的 link 到 运行 程序一旦构建,您可以使用:

sim-safe [-sim opts] foo [-program opts]

这似乎遵循您在 post 中显示的形式:

./sim-safe -redir:sim results/hello.sim.out -redir:prog results/hello.prog.out sstest.