2016-05-11 11 views
3

Ich versuche SimpleScalar zu verwenden, um einen sehr einfachen Code nur zum Testen auszuführen. Dies ist der Code bei mir läuft:Fehler beim Ausführen von Basiscode mit SimpleScalar

#include<stdio.h> 

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


    } 
    printf("Hello World \n"); 


} 

und das sind die Zeilen, die ich verwendet, um zu kompilieren und das Programm mit Simple-SIM in einen Ordner namens Ergebnisse zu führen.

gcc sstest.c -o sstest

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

jedoch die Programmausgabe ist leer und der Simulator-Ausgang gibt die folgenden Fehler:

fatal: bad magic number in executable `sstest' (not an executable)

Gibt es etwas, das ich in dem Prozess falsch mache? Ich würde Ihre Hilfe sehr schätzen. Ich benutze auch Ubuntu als Betriebssystem und c als Programmiersprache.

+0

Nur neugierig - Haben Sie das jemals zur Arbeit gebracht? – ryyker

+0

@ryyker ja ich tat, mit Ihrer Antwort. Ich war weg und wusste nicht einmal, dass ich mit ssbig-na-strix-gcc kompilieren musste. Es dauerte eine Weile, bis es funktionierte und ich vergaß die Antwort zu akzeptieren. Danke für Ihre Hilfe. – cmperezg

+0

Freut mich zu hören. Es sah für mich so aus, als ob du etwas davon hättest und nur den Compilerbefehl vermisst. Vielen Dank. – ryyker

Antwort

1

Ihre schlechte magische Zahl in ausführbarer `sstest‘ Fehlermeldung kann ein Indikator dafür sein, dass die Binärdatei für die Verwendung mit SimpleScaler nicht kompatibel ist.

Das Compiler-Skript, das Sie anzeigen: gcc sstest.c -o sstest dient zum Erstellen einer gewöhnlichen Binärdatei. Es gibt nichts über den Code, der zu einem Fehler beim Kompilieren führen oder als normale ausführbare Datei ausgeführt werden sollte, aber es wurde nicht mit dem SimpleScaler-Dienstprogramm erstellt.

Von this SimpleScaler tutorial:

eine SimpleScaler binär zu erstellen, insbesondere ein C-Programm GCC Sie verwenden würden:

ssbig-na-sstrix-gcc -g -O -o foo foo.c -lm 

Aus dem gleichen Link, um das Programm auszuführen, wenn es gebaut wird , könnten Sie verwenden:

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

Die scheint die Form von dem, was Sie in Ihrem Beitrag gezeigt haben, folgen:

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