2016-05-11 3 views
3

Я пытаюсь использовать SimpleScalar для запуска очень простого кода только для тестирования. это код, который я бег:ошибка при запуске базового кода с SimpleScalar

#include<stdio.h> 

main() 
{ 
    int x = 0; 
    for (x = 0; x < 1000000; x++) { 


    } 
    printf("Hello World \n"); 


} 

и эти строки, которые я использовал для компиляции и запуска программы с простым-симом в папку с именем результаты а.

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 как язык программирования.

+0

Просто интересно - Вы когда-нибудь заставляли это работать? – ryyker

+0

@ryyker Да, я сделал с вашим ответом. Я отмахивался и даже не знал, что мне нужно скомпилировать ssbig-na-sstrix-gcc. Мне потребовалось некоторое время, чтобы заставить его работать, и я забыл принять ответ. Спасибо за помощь. – cmperezg

+0

Рад это услышать. Мне казалось, что у вас есть что-то в этом роде, просто отсутствует команда компилятора. Благодарю. – ryyker

ответ

1

Ваш плохо магическое число в исполняемом `sstest» сообщение об ошибке может быть показателем того, что ваш двоичный файл не совместим для использования с SimpleScaler.

Сценарий компилятора, который вы показываете: gcc sstest.c -o sstest предназначен для создания обычного двоичного кода. В коде нет ничего, что могло бы привести к сбою в компиляции или выполнить как обычный исполняемый файл, но он не был создан с использованием утилиты SimpleScaler.

От this SimpleScaler tutorial:

Чтобы создать двоичный SimpleScaler, в частности, программа C помощью GCC вы будете использовать:

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.