【问题标题】:error while running basic code with SimpleScalar使用 SimpleScalar 运行基本代码时出错
【发布时间】:2016-09-06 21:59:41
【问题描述】:

我正在尝试使用 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 结果/hello.sim.out -redir:prog 结果/hello.prog.out sstest。

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

致命:可执行文件“sstest”中的幻数错误(不是可执行文件)

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

【问题讨论】:

  • 只是好奇 - 你有没有得到这个工作?
  • @ryyker 是的,我做了,你的回答。我很沮丧,甚至不知道我必须使用 ssbig-na-sstrix-gcc 进行编译。我花了一段时间才让它工作,我忘了接受答案。感谢您的帮助。
  • 很高兴听到这个消息。在我看来,你有一些,只是缺少编译器指令。谢谢。

标签: c linux simulator


【解决方案1】:

您的 bad magic number in executable `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.

【讨论】:

    猜你喜欢
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    相关资源
    最近更新 更多