运行 使用 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 实用程序构建的。
要创建 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.
我正在尝试使用 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 实用程序构建的。
要创建 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.