Forum: Mikrocontroller und Digitale Elektronik Magische Datei


von Walter T. (nicolas)


Angehängte Dateien:

Lesenswert?

Guten Tag miteinander,

meine Frage klingt wie ein Scherz. Ist es aber nicht. Ich nutze EmBitz 
1.11 mit einem eingebauten ARM-GCC. Ich habe eine Datei (siehe Anhang), 
bei der der Build eines für mich großen Projekts fehlschlägt, wenn der 
Compiler dort auch nur eine einzige Warnung erzeugt. (In diesem Fall die 
Warnung "unused parameter". In allen anderen Dateien, von denen es sehr 
viele gibt, funktioniert Quelltext, der von dieser Datei gecopy-pasted 
wurde.

Bei einem Compiler für Windows (Mingw 5.1.0) schlägt der Build in der 
gleichen Umgebung (erwartungsgemäß) nicht fehl.

Clean Builds wurden natürlich versucht. Das Problem wandert mit 
unterschiedlichen PCs. Durch das Versionsverwaltungssystem (SVN). Den 
Dateinamen gibt es nur einmal im Projekt. Ich erkenne keine 
ungewöhnlichen nicht-druckbaren Zeichen.

Wenn ich sie aus dem Projekt entferne, baue und wieder hinzufuege, hat 
sie die gleichen Eigenschaften. Wenn ich eine Datei, die sich vorher 
baue, in den Namen dieser Datei umbenenne, schlägt der Build wieder 
fehl, sobald eine einzige Warnung entsteht.

Hat diese Datei etwas magisches an sich?


Nachtrag: Wenn ich die Datei lösche, aus EMBitz entferne, in Windows 
eine leere Textdatei mit diesem Namen erzeuge, wieder EmBitz hinzufüge, 
von Hand den neuen Quelltext eintippe, ist die Magie verschwunden. Und 
das schlimme daran: Ich wundere mich darüber.

Nachtrag 2:
Man kann sie allerdings mit einem Copy-Paste aus einer Datei, die ein 
Copy-Paste der alten Version des Inhalts enthielt, wieder infizieren.

Wenn man die Änderung mit Strg-Z anschließend rückgängig macht und 
wieder speichert, ist sie wieder in Ordnung. Wenn man nur mit Strg-A 
alles löscht, ist sie nicht desinfiziert.

Nachtrag 3:
Hm. Jetzt ist die Zombie-Reinfektionsmöglichkeit verschwunden, und sie 
kommt auch nicht mehr zurück. Wahrscheinlich hat irgendwer in der Nähe 
ein Jungfrau geopfert.

Nachtrag 4: Die Zombie-Eigenschaft ist nach einem Neustart vom EmBitz 
wieder da. Hat die "Jungfrau" wohl geschwindelt.

Nachtrag 5:
Das übersteigt mein naturwissenschaftliches Denken. Ich gebe auf und 
gehe Essen. Dieser Dateiname wird dauerhaft nicht mehr benutzt.

von fop (Gast)


Lesenswert?

Es gibt eine Compileroption : behandle Warnungen wie Fehler (treat 
warnings as errors). Kann man diese Option in Deiner IDE vielleicht 
dateiweise setzen ?

von Walter T. (nicolas)


Lesenswert?

Ja, auf irgendeine geheimnisvolle Weise wird diese Datei anders 
behandelt. In  der Projekt-Konfigurationsdatei (halbwegs menschenlesbare 
XML-Datei) hat sie allerdings bei den Compiler-Optionen keinerlei 
Sonderstatus.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Du kannst ja mal mit -v compilieren und prüfen, ob due Datei mit anderen 
Optionen übersetzt wird.  Ergibt allerdings viel zu lesen...

Sonderzeichen enthält die Datei jedenfalls nicht.

Was auffällt ist der C++ Kommentar (bzw. C99+) in einer C-Quelle.

von Teo D. (teoderix)


Angehängte Dateien:

Lesenswert?

Walter T. schrieb:
> Ich erkenne keine
> ungewöhnlichen nicht-druckbaren Zeichen.

Wirklich nich?

von Walter T. (nicolas)


Lesenswert?

Teo D. schrieb:
> Wirklich nich?

Nicht wirklich. Welches Zeichen findest Du ungewöhnlich?

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Teo D. schrieb:
> Wirklich nich?

Ich sehe da auch keine ungewöhnlichen Zeichen. Die Zeilenumbrüche 
entsprechend der unter DOW/Windows üblichen Konvention mit CR+LF.

von W.S. (Gast)


Lesenswert?

Walter T. schrieb:
> Hat diese Datei etwas magisches an sich?

Nö.

Übersetze sie doch mal direkt von Hand - d.h. rufe deinen Compiler 
direkt von der Kommandozeile auf. Kommt dann die Meldung "unused..." als 
Warnung oder als Fehler?

Wenn sie nur als Warnung kommt, dann hast du ein Problem mit deiner IDE, 
wenn nicht, dann mit deiner Compilerversion oder mit irgendwelchen 
Umgebungsvariablen, wo etwas drinsteht, was du garnicht haben willst.

W.S.

von Bernd K. (prof7bit)


Lesenswert?

Die Warnung hat doch bestimmt eine Zeilennummer und genug Angaben um den 
fraglichen unbenutzten Parameter zu finden, da muss man doch nicht so 
einen Zirkus veranstalten.

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
Noch kein Account? Hier anmelden.