herbstengel
Goto Top

ErrorParser für VisualStudio bei Verwendung eines Drittanbieter-Compilers

Hallo,

wir verwenden Visual Studio (2017) in einem Projekt (Solution) mit zwei verschiedenen Konfigurationstypen: DynamicLinkLibrary und Makefile. Die Makefilekonfiguration wird gesteuert über das makefile eines Drittanbieter-Compilers (hier: Greenhills für Embedded Applications), DynamicLinkLibrary läuft natürlich Studio-Intern. Die Makefilekonfiguration verwendet die Elemente des NMake-Templates, für den Compileraufruf selbst gibt es diese Kommandozeilen, in welcher ein Batchfile mit Übergabeparametern aufgerufen wird

vs

mm.bat ist die Batch-Steuerung mit sieben Parametern für den Greenhills-Compiler.

Im Falle eines Compilerfehlers des Drittanbieter-Compilers möchten wir nun einen komfortablen ErrorParser aktivieren, der die entsprechende Quellcodedatei durch Doppelklick auf die fehlerhafte Zeile im VisualStudio-Ausgabefenster in das Editorfenster lädt und dort den Cursor automatisch auf der fehlerhaften Codezeile platziert. Wenn Eclipse als zweite IDE für unser Makefile-Projekt verwendet wird, funktioniert dies sehr gut über ein Regex-Steuerelement ('Regex Error Parser'). In Visual Studio funktioniert dies jedoch nicht. Kann dies denn überhaupt direkt aus dem Ausgabefenster erfolgen? Hat hier jemand einen Rat? Grob gesagt ist es überhaupt möglich, eine Aktion aus dem Visual Studio-Ausgabefenster durch Doppelklicken auszulösen (in dem Sinne, dass die angeklickte Zeile vom Ausgabefenster zur weiteren Verarbeitung 'gelesen' wird; die weitere Verarbeitung sollte letztlich die fehlerhafte Quellcodezeile anzeigen).

Viele Grüsse,

Roger

Content-ID: 665742

Url: https://administrator.de/contentid/665742

Ausgedruckt am: 13.11.2024 um 07:11 Uhr

Herbstengel
Herbstengel 29.04.2021 um 17:13:08 Uhr
Goto Top
Hallo,

ein Lösungsansatz könnte sein, die Fehlerausgabe des Drittanbietercompilers im Output-Window in das VisualStudio-eigene Fehlerformat auch im Output-Window zu bringen/transformieren. Dann wird bei Doppelklick auf die angegebene Zeile, z.B.

c:\xxx\yyyy\zzzz\sourcefiles\aaaa\src\testmodul.c(94): error C2143: syntax error: missing ';' before 'if'

automatisch vom VisualStudio das fehlerhafte Modul (testmodul.c) in den Sourcecode-Editor geladen, sofern noch nicht geschehen, der Fokus wird auf den Reiter dieses Moduls gesetzt und im Quellcode wird dann tatsächlich, wie gewünscht, auf die fehlerhafte Zeile (hier Nr. 94) gesprungen.

Nun stellt sich die Frage, wie so eine "Texttransformation" am geschicktesten gemacht werden kann. Eine Möglichkeit wäre, das auch in Windows verfügbare Unix-Tool sed einzusetzen. Mit Hilfe von Regulären Ausdrücken könnte so eine Transformation umgesetzt werden.

Gibt es weitere Ideen?

viele Grüße,

Roger