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

我正在尝试使用Simple
Scalar运行一个非常基本的代码来进行测试.这是我正在运行的代码:

#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

从同一个链接开始,为了在程序构建后运行程序,您可以使用:

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

这似乎遵循您在帖子中显示的内容的形式:

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