Hallo,
ich bin gerade über einen Fehler gestolpert, bei dem ich erstmal etwas brauchte, bis ich ihn überhaupt bemerkt habe.
Ich habe einen alten Source von einem D64-Image ins C64 Studio eingefügt, um diesen anzupassen.
Als ich begann die ersten Fehler zu korrigieren und dann das Programm neu assemblieren ließ, damit diese aus der Fehlerliste verschwinden, blieben die einfach stehen.
Nach wiederholtem kontrollieren, dass ich alles korrekt korrigiert habe, warf ich einen Blick auf den Output-Tab und siehe da, dort stand eine Fehlermeldung:
- An error occurred during building an element
- System.ArgumentOutOfRangeException: Der Index und die Länge müssen sich auf eine Position in der Zeichenfolge beziehen.
- Parametername: length
- bei System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
- bei C64Studio.Parser.ASMFileParser.DetermineUnparsedLabels()
- bei C64Studio.Parser.ASMFileParser.Parse(String Content, ProjectConfig Configuration, CompileConfig Config)
- bei C64Studio.Parser.ParserBase.ParseFile(DocumentInfo Document, ProjectConfig Configuration, CompileConfig Config)
- bei C64Studio.MainForm.ParseFile(ParserBase Parser, DocumentInfo Document, ProjectConfig Configuration, Boolean OutputMessages)
- bei C64Studio.Tasks.TaskCompile.BuildElement(DocumentInfo Doc, String ConfigSetting, String AdditionalPredefines, Boolean OutputMessages, BuildInfo& BuildInfo, FileInfo& FileInfo)
Im kopierten Source gab es folgende Zeile.
Die Startadresse habe ich hinzugefügt, so kann ich das direkt reproduzieren.
Erstelle ich den obigen Abschnitt, kommt es im Output-Fenster zur Eingangs gezeigten Fehlermeldung.
Der Fehler verschwindet, sobald eine der beiden folgenden Änderungen gegeben ist:
- Das Label MINIT wird eingefügt.
- oder man gibt mind. ein Leerzeichen mehr, vor dem Semikolon ein.