EmBitz 1.1: Wie erzeugt man Assembler Listings?

Gast #4920619
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\
Gast #4920706
Ok,

un wo trägt man das ein? Das soll ja automatisch passieren...... und 
aktiviert habe ich nichts, das macht ja die IDE,. diesen String zusammen 
setzen.
Persönliche Seite #4920914
1) Übersetze mit -save-temps -v

2) Suche in den Console-Ausgaben nach *.ltrans*.s

3) Suche in den ltrans, welche zur Quelle gehört.  Eine 1:1 Zuirdnung
   gibt es nicht.

-ffat-lto-objects ist NICHT was du willst, denn die s-Files enthalten 
dann nur Makulature.  Das einzige, was -ffat-lto-objects bewirkt, ist, 
den Build-Vorgang zu verlangsamen :-)
Persönliche Seite #4920928
... 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
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
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
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.