EmBitz 1.1: Wie erzeugt man Assembler Listings?

Gast #4920619
Lesenswert?

Hallo,

weiss das zufällig jemand? Nein, nicht mit dem Parameter -S unter den 
"Other compiler options", das erzeugt nur Fehlermeldungen. Im Netz ist 
auch nichts zu finden, außer dass mehrere das Problem schon hatten. Im 
obj Ordner sind zwar .s Files aber da drin steht nur .ascii .... und das 
seitenweise.

Gruss,
Christian

Seltsame Ausgabe....

  .ascii  "\243\331\200n1\276\225\240)E\267\014\337\312\321lDw"
  .ascii  "\023\232\012t7\243\331\202n%\232\255\350V\241\331\206"
  .ascii  "n5\232\000\272\333\321\324\240\033DS\213n\035\276\355"
  .ascii  "@S\217n\003\232Ft\233\3204\243\273\023\315.t[\320\354"
  .ascii  "Fw\017\276\355%\3526\020\211\364\312\362@\2119\340\352"
  .ascii  "\346\300\263_\265\255\370\327\273x\233\334\030\377e"
  .ascii  "f\341\216\324F\377\204\037hZw\3349u\343\260\365\353"
  .ascii  "\034\326t!\266\251{\374\024\374\271-j\255\207(\305&"
  .ascii  "\"\017\367\3116\255\271\211\265\010q-7\336d-b\025\271"
  .ascii  "(\367ve\302\230g\310i\350eg\275\325\347\035\312\362"
  .ascii  "\3466\351\271f\314d\003!v\022e6\340\313Z\223\305h4q"
  .ascii  "\264CTO\312V\014\224\210\013\031\237\017\2377\206\227"
  .ascii  "\270\270vu\002j\036_\342\320N\364\214\371\230\314\001"
  .ascii  "J\235\327\251\215xk\326a\016*t\321\252\247\347\303U"
  .ascii  "L\345\324\366B\035\255\317\200sA\203\272\0074f\345Z"
  .ascii  "_h\326\306\231\233\017\007\230\302\3156\177\212\374"
  .ascii  "\370G\227\303\250V\211\314g\263\025\343\"\252t\271\254"
  .ascii  "\227\207AL\221\336\277\272\216\031\325\
Persönliche Seite #4920928
Lesenswert?

... bei mir funktioniert folgendes (avr-gcc)

1) Übersetzen mit -v -save-temps

2) Ausgabe filtern nach "[Leaving LTRANS", das sind Zeilen, die z.B. so
   aussehen:
1
[Leaving LTRANS /tmp/ccTUojfO.ltrans.out]
2
[Leaving LTRANS /tmp/ccTUojfO.ltrans0.o]

3) Die Dateinamen der Assembler-Dumps ergeben sich aus den *.o Zeilen:
   Im Beispiel ist es nur ein Modul, und das Dump in ccTUojfO.ltrans0.s,
   d.h. ohne den führenden Pfadname.

was auch geht, die Ausgabe nach Aufrufen von as zu durchsuchen, da wird 
dann das asm-File explizit genannt.  Beispiel:
1
/srv/local/gnu/install/gcc-7/bin/../lib/gcc/avr/7.0.1/../../../../avr/bin/as -v -mmcu=avr4 -mno-skip-bug -o /tmp/ccTUojfO.ltrans0.ltrans.o ccTUojfO.ltrans0.s

Die asm-Datei ist also ccTUojfO.ltrans0.s.

p.s. -dumpbase scheint nicht wie gewünscht zu funktionieren.
Gast #4920935
Lesenswert?

Hallo,

bitte nicht falsch verstehen aber diese Antworten enthalten alle etwas 
anderes, letzte Beitrag verstehe ich überhaupt nicht.

"Ausgabe filtern nach..."

Wie filtert man welche Ausgabe? Mit den Augen durchsuchen? Das läuft 
vollautomatisch ab der Compiler+Link Vorgang. Und das Manual von Embitz 
ist grottenschlecht, ein typisches Nerd Produkt was für Normalbenutzer 
nahezu unverständlich ist.

Und leider ist es genauso bei vielen engl. Beiträgen. -save-temps -v 
bewirkt nur, dass der Kompiliervorgang mit etlichen Erros endet. Und man 
auch nicht nachvolziehen kann was da nicht stimmt. Ich arbeite mit dem 
STM32 Cortex M3.

Daher bitte nur jener antworten, wer dieses Tool wirklich benutzt und 
den gewünschten Effekt schon erreicht hat. Vielleicht mit einem 
Screenshot dabei wo was eingetragen wird. Es gibt unendlich viele 
Dialogfenster, die teilweise tief geschachtelt sind.
Persönliche Seite #4920950
Lesenswert?

Christian J. schrieb:
> letzte Beitrag verstehe ich überhaupt nicht.

Ist aber das, was du brauchst, um an die Assembler-Ausgabe von GCC 
ranzukommen.

Das Problem ist, dass der Compiliervorgang mit LTO deutlich 
komplizierter ist als ein "normaler", also nicht-LTO-compile.  Das erste 
Compile enthält nur Bytecode, der hier nicht wirklich hilfreich ist. 
Bytecode ist das, was du in deinem 1. Beitrag gepostet hast.

> "Ausgabe filtern nach..."
>
> Wie filtert man welche Ausgabe?

Kommt auf deine Umgebung an.  Ich kann dir Hilfestellung für die Tools 
(Compiler, Linker, etc.) geben. aber wenn das ...

> Daher bitte nur jener antworten, wer dieses Tool wirklich benutzt

...nicht gewünscht ist, dann gerne :-)
Gast #4921013
Lesenswert?

Johann,

Du hast sicher ne Menge Ahnung, viel mehr als ich :-) Aber ich weiss 
weder was LTO ist noch bin ich mit den Interna eines Compilers + Linkers 
vertraut. Typischer Anwender. Ich überlasse das einfach der IDE und dass 
die mein Projekt richtig verarbeitet, genau wie die Jungs nebenan in der 
Entwicklung, die Keil verwenden und dafür viel Geld ausgeben. Bisher 
ganz gut damit gefahren seit ca 20 Jahren, auch ohne zu wissen wie ein 
make File funktioniert, maximal ein Linker Script verstehe ich, bzw kann 
es anpassen.
Im cmd fenster von Windows lässt sich aus dem .o File mit objdump auch 
ein Asm File erzeugen, wenn man es manuell macht.

Falls die Dateien als zb typische Linux Temp Namen haben fällt die Chose 
flach. Mir fehlt der Nerv dazu diese Schritte nach jedem Komplilat zu 
machen. Entweder ich hole mir so ein .s File direkt in den Editor und 
sehe nach jedem Durchgang was bei rauskommt oder ich muss es lassen. 
Dass sich Embitz auch durch Scripte steuern lässt weiss ich aber da gibt 
es keine gescheiten Tutorials zu. So gut die IDE ist, die auf EmBlocks 
basiert, so schlecht ist ihre Akzeptanz wegen der grottenschlechten bzw 
gar nicht vorhandenen Doku.
#4921433
Lesenswert?

Christian J. schrieb:
> noch bin ich mit den Interna eines Compilers + Linkers
> vertraut. Typischer Anwender.

Als "Anwender" kommt man doch gar nicht in die Verlegenheit eine IDE zu 
benutzen und C zu programmieren, als Anwender wendet man fertige 
Produkte an!

Von einem C Programmierer jedoch erwartet man daß er weiß wie man mit 
seinen Hauptwerkzeugen (nämlich Compiler und Linker) umgeht, was die für 
Optionen haben und was die bewirken.

Christian J. schrieb:
> Mir fehlt der Nerv dazu diese Schritte nach jedem Komplilat zu
> machen.

Dann trags doch einfach in die Post build steps ein, fertig.
Gast #4921490
Lesenswert?

Ich probiers :-(

Hat ja bisher alles auch nicht funktioniert, da ich zb nicht mal den GCC 
Parameterstring kontrollieren kann.

Übrigens mal bei google nach "embitz generate assembly listing" suchen. 
was ihr da findet ist komplett anders als alles was hier steht, auch die 
Parameter sind andere als hier vorgeschlagen. Daher die 
Riesenverwirrung.
Gast #4942405
Lesenswert?

Die einfachste Kiste ist die, beim Debuggen "Assembler View" anzuzeigen 
und Mixed Mode zu wählen. Irgendwie erzeugt die IDE schon intern alles 
ganz richtig und beim Debuggen kann man sich anschauen wie alles 
aussieht und hat noch den C-Text dazu. Ganz ohne Verrenkungen...
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren