Serus, Moin und Hallo! Wir entwickeln mittels WinAVR/GCC für ATMEGA16. Ich suche nach Literatur, in der ich mich in den Aufbau der GCC-Dumps einarbeiten kann, also was steht in .original, in .gimple etc. und wie sind die Dateien aufgebaut. Wo steht das genau? Dank Euch! J
Was genau ist ein Dump für dich? Mit ".original, in .gimple etc." kann ich nichts anfangen (obwohl ich mir einbilde, den GCC einigermaßen zu kennen).
Sowas z.B., also der abstrakte Sytaxbaum, den man auch mit GCC erzeugen kann: ;; Function main (main) ;; enabled by -tree-original @1 bind_expr type: @2 vars: @3 body: @4 @2 void_type name: @5 algn: 8 @3 var_decl name: @6 type: @7 scpe: @8 srcp: main.c:15 size: @9 algn: 8 used: 1 @4 statement_list 0 : @10 1 : @11 2 : @12 3 : @13 4 : @14 5 : @15 6 : @16 7 : @17 @5 type_decl name: @18 type: @2 srcp: <built-in>:0 @6 identifier_node strg: a lngt: 1 @7 integer_type name: @19 size: @9 algn: 8 prec: 16 min : @20 max : @21 @8 function_decl name: @22 type: @23 srcp: main.c:14 extern @9 integer_cst type: @24 low : 16 @10 decl_expr type: @2 @11 decl_expr type: @2 @12 decl_expr type: @2 @13 modify_expr type: @7 op 0: @3 op 1: @25 @14 modify_expr type: @7 op 0: @26 op 1: @27 @15 call_expr type: @7 fn : @28 args: @29 @16 call_expr type: @7 fn : @30 args: @31 @17 return_expr type: @2 @18 identifier_node strg: void lngt: 4 @19 type_decl name: @32 type: @7 srcp: <built-in>:0 @20 integer_cst type: @7 high: -1 low : -32768
Ach du Schreck... Willst du den GCC weiterentwickeln? Es gibt eine GNU-info-Datei namens "gccint", da sollte sowas drin stehen. Kann man sich sicher auch als Buch ausdrucken, wenn man will. Ansonsten der alte Spruch: "All documentation files usually end up in .c." ;-)
:-). Danke, den Spruch muß ich mir merken. Es geht um Syntaxanalyse bei selbst verfaßten Programmen!
grab schaufel Ich hol die Leiche mal hoch, habe nämlich exakt das gleiche Problem: Ich suche Informationen um das Ergebnis von -fdump-translation-unit zu verstehen. Gibt es da mittlerweile mehr Doku? In den Internals kann ich nichts finden, falsch gesucht?
Ich glaube ich hab das Passende gefunden: \gcc\doc\c-tree.texi Ist ein recht merkwürdiges Format was sich angeblich mit http://gnuwin32.sourceforge.net/packages/texinfo.htm umwandeln lässt, nur bei mir funktioniert das nicht richtig... anyway.
Nur fürs Protokoll weil der Beitrag bei Google recht weit oben kommt: c-tree.lexi ist eigentlich unlesbar, erstmal weil ständig Formatierungsanweisungen (@irgendwas) den Lesefluss unterbrechen und zweitens weil sich das ganze nicht auf den Aufbau der Dumpdatei sondern auf den Quellcode vom GCC und dessen Datenstrukturen konzentriert. Google hat mir noch http://search.cpan.org/~awin/GCC-TranslationUnit-1.00/ ausgespuckt, wer Perl kann ist da vielleicht gut beraten. So, vielleicht hilft es ja Jemandem irgendwann mal.
möchtegernprogrammierer schrieb: > grab schaufel Ich hol die Leiche mal hoch, habe nämlich exakt das > gleiche Problem: Ich suche Informationen um das Ergebnis von > -fdump-translation-unit zu verstehen. Das ist doch selbsterklärend: >> @3 var_decl name: @6 type: @7 scpe: @8 >> srcp: main.c:15 size: @9 In main.c wird in Zeile 15 eine Variable mit Name @6 vom Typ @7 deklariert/definiert. Scope ist @8, Größe der Variable ist @9. >> @6 identifier_node strg: a lngt: 1 Die Variable heißt also "a". >> @7 integer_type name: @19 size: @9 algn: 8 >> prec: 16 min : @20 max : @21 Typ ist ein skalarer Integer-Typ. Ebenso wie a hat der Typ das Alignment 8 Bits. >> @8 function_decl name: @22 type: @23 srcp: main.c:14 >> extern Scope der Variablendefinition, die Variable ist also lokal. Etc. > Gibt es da mittlerweile mehr Doku? Diese Dunps brauchen keine Doku, sie dienen den GCC-Entwicklern, und die wissen, wie sie zu lesen sind. Für Analysezwecke sind die Dumps ungeeignet, da sie nicht alle Informationen enthalten. Die Dumps sind zudem nicht spezifiziert. Wenn du statische Codeanalyse betreiben willst, dann ist ein Plugin das Mittel der Wahl. > In den Internals kann ich nichts finden, falsch gesucht? Die Internals sind nur als weichen Einstieg für GCC-Neulinge gedacht. Auskunft gibt die Quelle und wenn du da nix findst, frag in gcc-help@gcc.gnu.org. möchtegernprogrammierer schrieb: > Ich glaube ich hab das Passende gefunden: \gcc\doc\c-tree.texi > Ist ein recht merkwürdiges Format was sich angeblich mit Es ist TexInfo. Es ist nicht "merkwürdig", es ist Text. Lies ihn einfach ;-) Ubrigens landet alles in ./gcc/doc in der GCC-Dokumentation, du kannst also einfach die lesen wenn dir texi nicht gefällt: http://gcc.gnu.org/onlinedocs
Johann L. schrieb: > Das ist doch selbsterklärend: Für dich als GCC-Mitentwickler sicherlich! :-) > Für Analysezwecke sind die Dumps ungeeignet, da sie nicht alle > Informationen enthalten. Schade. > Die Dumps sind zudem nicht spezifiziert. Das ist wohl wahr. :-) > Wenn du statische Codeanalyse betreiben willst, dann ist ein Plugin das > Mittel der Wahl. Naja, eigentlich will ich nur mal ein bisschen rumspielen und gucken was so geht. Aber wie das so ist, man liest und liest und liest und die Zeit vergeht... Meine Hochachtung all denen die fähig sind diese Monsterdinger (Compiler) zu schreiben und zu warten... > Ubrigens landet alles in ./gcc/doc in der GCC-Dokumentation, du kannst > also einfach die lesen wenn dir texi nicht gefällt: > http://gcc.gnu.org/onlinedocs Ah prima, das dürfte sich leichter lesen lassen. Danke!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.