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

时间:2016-05-11 13:08:53

标签: c linux simulator

我正在尝试使用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作为编程语言。

1 个答案:

答案 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.