Compiler-Einstellung im Code erkennen?

OP #3621157
Lesenswert?
• ▲
▼
Ist es möglich, eine eingeschaltete Compiler-Optimierung oder 
Debug-Informationen im C-Präprozessor zu erkennen?

Die Idee ist, abhängig von der Compilereinstellung den C-Code zu 
modifizieren, um z.B. Verzögerungsschleifen zu korrigieren, die sich 
durch Optimierung oder Wegfall von Debug-Infos verändern.
Persönliche Seite #3621172
Lesenswert?
• ▲
▼
In deinem Ansatz ist der Wurm drin.

Zwar kannst du per #ifdef __OPTIMIZE__ oder #ifdef __OPTIMIZE_SIZE__ 
abtesten, ob Optimierung (auf Größe) aktiviert ist, aber wenn du das 
brauchst, hast du vermutlich einen Denkfehler im Programm.

Erzeugen / Nichterzeugen von Debug-Information wird niemals den von GCC 
erzeugten Code verändern, d.h. -g2, -gdwarf-3, -g0, -gstrict-dwarf etc. 
wirkt sich nicht auf den Code aus -- falls doch, ist es ein Bug im GCC.
Gast #3621385
Lesenswert?
• ▲
▼
F. P. schrieb:
> Die Idee ist, abhängig von der Compilereinstellung den C-Code zu
> modifizieren, um z.B. Verzögerungsschleifen zu korrigieren
Du willst also, das was die Compiler-Optimierung in deinem Code "kaputt" 
macht, wieder korrigieren...

Das Problem sitzt an einer ganz anderen Stelle, nämlich hier:
F. P. schrieb:
> Verzögerungsschleifen

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.