Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
entwicklerwerkzeuge [2017/10/06 10:09]
huwi
entwicklerwerkzeuge [2019/07/27 16:04] (aktuell)
huwi
Zeile 1: Zeile 1:
 +====== Werkzeuge ======
 +Fehlersuche gestaltet sich in größeren Programmen manchmal doch etwas schwierig. SiSy bietet verschiedene Werkzeug zur Unterstützung des Entwicklungsprozesses an. Für die gezielte Fehlersuche sollen hier zwei Werkzeuge vorgestellt werden, der Debugger und der Debug-Monitor.
  
 +====== Der Debugger ======
 +Debugger sind spezielle Werkzeuge zur Fehlersuche. Es ist zu beachten, dass die zu //debuggenden// Programme in der Regel mit speziellen Debuginformationen gebildet werden müssen. Die wichtigsten Funktionen eines Debuggers sind:
 +
 +  * Programme anhalten, z.B. an einem gewünschten Unterbrechungspunkt
 +  * Programme schrittweise abarbeiten
 +  * Werte überwachen, z.B. Attribute, Variablen, Speicherbereiche
 +  * Quelltext und/oder Modell nachführen (source code / model level debugging)
 +
 +SiSy bietet eine Integration und grafische Benutzeroberfläche für GNU-Debugger. Der Debugger wird jeweils aus der aktuellen Perspektive (Programmansicht) des Entwicklers gestartet. Im Klassendiagramm erfolgt das Starten des Debuggers über das Aktionsmenü in der Objektbibliothek. Das Programm muss dazu erfolgreich erstellt worden sein.
 +
 +>{{:tools:debuggerstarten.png?700|}}
 +
 +Die einzelnen Funktionen und Ansichten des Debuggers sind über entsprechende Schaltflächen erreichbar.
 +
 +>{{:tools:debuggerquickref.png?500|}}
 +
 +
 +Nachdem der Debugger gestartet ist können in der Anwendung Unterbrechungspunkte festgelegt werden. Die folgenden Darstellungen zeigen eine Debuggersitzung der vorausgehend erstellten Anwendung //[[einfache Steuerelemente]]//.
 +
 +
 +>{{:tools:setbreakpoint.png?700|}}
 +
 +Wenn an den zu untersuchenden Programmabschnitten die gewünschten Unterbrechungspunkte gesetzt wurden. kann die Anwendung gestartet werden.
 +
 +>{{:tools:debugrun.png?700|}}
 +
 +Der Debugger hält die Anwendung an bevor die Zeile mit dem Unterbrechungspunkt abgearbeitet werden soll. Jetzt können Variablen in die Beobachtungsansicht des Debuggers aufgenommen und die Anwendung im Schrittbetrieb untersucht werden. Der Quelltext und das Modell werden den Debuggerschritten nachgeführt.
 +
 +>{{:tools:debugview.png?700|}}
 +
 +====== Der Debugmonitor ======
 +Eine weitere Möglichkeit zur Fehlersuche besteht darin die Anwendung nicht anzuhalten um bestimmte Werte oder abgearbeitete Programmteile zu überwachen sondern entsprechende Informationen zur Laufzeit aus der Anwendung aufzuzeichnen (Log, von Logbuch, Aufzeichnung). Für diesen Zweck bietet sich der SVL-Debugmonitor an. Die SVL bietet intern bereits eine vorbereitet IP-Schnittstelle zum Debugmonitor. Diese muss nur noch aktiviert werden und der Entwickler kann aus der laufenden Anwendung Informationen zur Aufzeichnung an den Debugmonitor senden.
 +
 +>{{:tools:demonstarten.png?700|}}
 +
 +Die IP-Verbindung zum Debugmonitor wir zunächst den Argwohn Ihrer Firewall hervorrufen. Damit der Debugmonitor die gewünschten Daten empfangen kann sollten Sie die lokale IP-Verbindung erlauben.
 +
 +>{{:tools:enabledemon.png?600|}}
 +
 +Die Anwendung //[[einfache Steuerelemente]]// wurde in der Operation //onSelChangeListBox// um die entsprechenden Befehle zum aktivieren der Debugmonitorverbindung und dem Senden von Debuginformationen erweitert.
 +
 +><code cpp>
 +// 1. Debugverbindung erlauben
 +debug.stop=false;
 +
 +// 2. Debuginformationen an den Debugmonitor senden
 +debug.print(text);
 +debug.printf("idx=%d",idx);
 +</code>
 +
 +>{{:tools:demontest.png?700|}}
 +
 +Wenn der Debugmonitor nicht gestartet ist läuft die Anwednung trotzdem. Die Debugnachrichten werden in diesem Fall nicht gesendet. Bei laufendem Debugmonitor und sehr großen Informationsmengen die aufzuzeichnen sind kann die Anwendung spürbar langsamer laufen.
 +
 +====== Videozusammenfassung ======
 +><flashplayer width="640" height="500" position="0">file=http://youtu.be/???</flashplayer>
 +
 +====== Nächstes Thema ======
 +  * [[ein kleines Projekt]]
 +  * [[http://www.mysvl.de/wiki/doku.php?id=start|zurück zur Übersicht]]