{"id":55001305,"date":"2021-06-01T00:00:00","date_gmt":"2021-07-31T10:14:13","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1305"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Debugging_in_twinBASIC","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/","title":{"rendered":"Debugging in twinBASIC"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg07.met.vgwort.de\/na\/c64c4980a7404d59a09cde5604ec6292\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Der Entwickler von twinBASIC, Wayne Philips, ist vor allem f&uuml;r sein Fehlerbehandlungstool vbWatchDog bekannt. Kein Wunder, dass er bei der Programmierung der Entwicklungsumgebung darauf geachtet hat, dass ausreichende Debugging-M&ouml;glichkeiten vorhanden sind. Wie Sie diese nutzen, zeigt der vorliegende Beitrag. Dabei lernen Sie die verschiedenen Bereiche wie Variablen, &Uuml;berwachen, Aufrufliste, Haltepunkte und den Debug-Bereich kennen.<\/b><\/p>\n<h2>Debugging in twinBASIC<\/h2>\n<p>Wenn Sie das Beispielprojekt aus dem Download ge&ouml;ffnet und die einzige enthaltene Datei <b>HelloWorld.twin <\/b>angezeigt haben, k&ouml;nnen Sie mit einem Klick auf die Schaltfl&auml;che <b>Ausf&uuml;hren und Debuggen <\/b>am linken Rand die Debugging-Bereiche der twinBASIC-Erweiterung von Visual Studio Code einblenden.<\/p>\n<p>Sie k&ouml;nnen auch die Tastenkombination <b>Strg + Umschalt + D <\/b>nutzen, um den linken Bereich sichtbar zu machen. Hier finden Sie gleich vier Bereiche vor:<\/p>\n<ul>\n<li><b>Variablen<\/b>: Zeigt die Inhalte der sichtbaren Variablen an.<\/li>\n<li><b>&Uuml;berwachen<\/b>: Hier k&ouml;nnen Sie Ausdr&uuml;cke zur &Uuml;berwachung hinzuf&uuml;gen.<\/li>\n<li><b>Aufrufliste<\/b>: Hier werden die aktuell aufgerufenen Routinen abgebildet sowie die Routinen, von denen diese aufgerufen wurden.<\/li>\n<li><b>Haltepunkte<\/b>: Zeigt die aktuellen Haltepunkte an. Per Klick springen Sie zur jeweiligen Zeile im Code.<\/li>\n<\/ul>\n<p>Au&szlig;erdem zeigt das Fenster im unteren Bereich noch die Debugging-Konsole an (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1305_001.png\" alt=\"Die verschiedenen Debugging-Bereiche\" width=\"700\" height=\"374,934\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Die verschiedenen Debugging-Bereiche<\/span><\/b><\/p>\n<h2>Routinen starten und durchlaufen<\/h2>\n<p>Derzeit ist twinBASIC noch eine reine Entwicklungsumgebung f&uuml;r EXEs ohne Benutzeroberfl&auml;che, DLLs, COM-Add-Ins et cetera. Da findet Debugging nat&uuml;rlich verst&auml;rkt in der Entwicklungsumgebung statt. Standardprojekte auf Basis der <b>HelloWorld<\/b>-Vorlage enthalten eine <b>Main<\/b>-Routine, die automatisch beim Start der Anwendung aufgerufen wird.<\/p>\n<p>Um diese Routine direkt in der Entwicklungsumgebung zu starten, haben Sie mehrere M&ouml;glichkeiten:<\/p>\n<ul>\n<li>&uuml;ber den Debugging-Bereich<\/li>\n<li>durch Markieren der Routine und Bet&auml;tigen der Taste <b>F5 <\/b>oder der Schaltfl&auml;che zum Starten der aktuell markierten Prozedur<\/li>\n<li>per Men&uuml;eintrag<\/li>\n<\/ul>\n<h2>Routine vom Debugging-Bereich aus aufrufen<\/h2>\n<p>Die erste M&ouml;glichkeit ist der Aufruf der Routine aus dem Debugging-Bereich heraus. Hier geben Sie den Namen der Routine und gegebenenfalls der Parmaeter an und bet&auml;tigen die Eingabetaste.<\/p>\n<p>Der Debugging-Bereich sieht etwas anders aus als im VBA-Editor. Sie k&ouml;nnen hier nicht einfach Befehle in den Bereich eintippen, sondern verwenden dazu den kleinen Bereich mit dem Gr&ouml;&szlig;er-Zeichen (<b>><\/b>). In dieser starten wir die Prozedur <b>Test <\/b>durch Eingabe des Routinennamens <b>Test <\/b>und anschlie&szlig;endes Bet&auml;tigen der Eingabetaste.<\/p>\n<p>Im Debugging-Bereich erfolgt dann die Ausgabe: erstens der Name der Routine, die gerade aufgerufen wurde, dann der Output der Routine mit der <b>Debug.Print<\/b>-Anweisung und schlie&szlig;lich die f&uuml;r den Aufruf ben&ouml;tigte Zeit (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1305_003.png\" alt=\"Starten einer Routine &uuml;ber den Debuggen-Bereich\" width=\"499,5589\" height=\"299,5559\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Starten einer Routine &uuml;ber den Debuggen-Bereich<\/span><\/b><\/p>\n<p>Sie k&ouml;nnen die <b>Debug.Print<\/b>-Anweisung auch direkt von der <b>><\/b>-Zeile aus aufrufen. Dann wird die <b>Debug.Print<\/b>-Anweisung ausgef&uuml;hrt und samt Aufruf und Laufzeit im Debugging-Bereich ausgegeben.<\/p>\n<h2>Routine mit F5 starten<\/h2>\n<p>Wenn Sie keine Lust haben, den Routinennamen erst in den Debugging-Bereich einzutippen, k&ouml;nnen Sie auch einfach die Einf&uuml;gemarke in der auszuf&uuml;hrenden Routine platzieren und dann die Taste <b>F5<\/b> bet&auml;tigen &#8211; oder die Schaltfl&auml;che zum Starten des Debuggings (siehe Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1305_004.png\" alt=\"Starten des Debuggens per Schaltfl&auml;che\" width=\"599,559\" height=\"137,8578\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Starten des Debuggens per Schaltfl&auml;che<\/span><\/b><\/p>\n<p>Diesen Befehl k&ouml;nnen Sie auch &uuml;ber den Men&uuml;punkt <b>Ausf&uuml;hren|Debugging starten <\/b>aufrufen (siehe Bild 4). Hier finden wir noch weitere Befehle, die allerdings zum Zeitpunkt der ersten Preview noch nicht funktionierten:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1305_002.png\" alt=\"Debugging-Befehle per Men&uuml;\" width=\"649,559\" height=\"150,5759\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Debugging-Befehle per Men&uuml;<\/span><\/b><\/p>\n<ul>\n<li><b>Debugging starten<\/b>: Startet die aktuell markierte Routine (Taste <b>F5<\/b>).<\/li>\n<li><b>Ohne Debuggen ausf&uuml;hren<\/b>:  (Tastenkombination <b>Strg + F5<\/b>)<\/li>\n<li><b>Debugging beenden<\/b>: Beendet das Debuggen (Tastenkombination <b>Umschalt + F5<\/b>)<\/li>\n<li><b>Debugging erneut starten<\/b>: Startet das Debuggen erneut (Tastenkombination <b>Strg + Umschalt + F5<\/b>)<\/li>\n<\/ul>\n<h2>Haltepunkte setzen<\/h2>\n<p><!--30percent--><\/p>\n<p>Genau wie im VBA-Editor k&ouml;nnen Sie auch in VS Code unter twinBASIC Haltepunkte setzen. Dazu klicken Sie einfach links von der Zeilennummer der Codezeile, in der Sie anhalten m&ouml;chten. Dort erscheint dann wie in Bild 5 ein roter Punkt.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1305_005.png\" alt=\"Setzen eines Haltepunktes\" width=\"474,5589\" height=\"230,8665\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Setzen eines Haltepunktes<\/span><\/b><\/p>\n<p>Wenn Sie die Routine etwa mit der Taste <b>F5 <\/b>gestartet haben, bleibt die Abarbeitung in der Zeile mit dem Haltepunkt stehen (siehe Bild 6).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1305_006.png\" alt=\"Erreichen eines Haltepunktes\" width=\"424,5589\" height=\"192,834\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Erreichen eines Haltepunktes<\/span><\/b><\/p>\n<h2>Code fortsetzen<\/h2>\n<p>Um die Abarbeitung des Codes bis zum Ende oder bis zum n&auml;chsten Haltepunkt fortzusetzen, bet&auml;tigen Sie einfach nochmal die Taste <b>F5<\/b>.<\/p>\n<h2>Code im Einzelschritt-Modus durchlaufen<\/h2>\n<p>Wenn Sie jedoch nach Erreichen des Haltepunktes den Code Schritt f&uuml;r Schritt durchlaufen wollen, um diesen zu untersuchen, bet&auml;tigen Sie die Taste <b>F11 <\/b>&#8211; also nicht mit <b>F8 <\/b>wie im VBA-Editor.<\/p>\n<h2>Die Debug.Print-Methode<\/h2>\n<p>Das Debugging-Fenster k&ouml;nnen Sie f&uuml;r die Ausgabe per <b>Debug.Print <\/b>aus dem Code heraus genauso nutzen wie das des VBA-Editors. Sprich: Sie f&uuml;gen irgendwo im Code eine <b>Debug.Print<\/b>-Anweisung ein, geben den auszugebenden Inhalt als Parameter an und lassen den Code laufen.<\/p>\n<p>Die <b>Debug.Print<\/b>-Methode arbeitet allerdings nicht genau so wie die im VBA-Editor: Es ist (noch) nicht m&ouml;glich, den auszugebenden Text mit dem Komma- oder Semikolon abzuschlie&szlig;en.<\/p>\n<p>Das f&uuml;hrt im VBA-Editor dazu, dass kein Zeilenumbruch an die Ausgabe angeh&auml;ngt wird und die Ausgabe der n&auml;chsten <b>Debug.Print<\/b>-Anweisung in der gleichen Zeile erfolgt &#8211; beim Komma durch einen Tabulator vom vorherigen Text getrennt, beim Semikolon unmittelbar hinter dem vorherigen Text.<\/p>\n<p>Allerdings landen hier im Gegensatz zum VBA-Editor auch andere Informationen im Debug-Fenster wie beispielsweise die Bezeichnung aufgerufener Routinen oder die Laufzeit &#8211; zumindest, wenn Sie eine Routine vom Debugging-Bereich aus gestartet haben.<\/p>\n<h2>Debugging-Fenster leeren<\/h2>\n<p>W&auml;hrend Sie im VBA-Editor das Debugging-Fenster geleert haben, indem Sie den ganzen Inhalt markiert und diesen gel&ouml;scht haben, ist dies im Debugging-Bereich von VS Code nicht m&ouml;glich: Hier m&uuml;ssen Sie die daf&uuml;r vorgesehene Schaltfl&auml;che mit dem ToolTip-Text <b>Konsole l&ouml;schen <\/b>daf&uuml;r nutzen.<\/p>\n<h2>Befehle durchsuchen<\/h2>\n<p>Sie k&ouml;nnen alle in dieser Sitzung im Debugging-Fenster abgesetzten Befehle durchsehen, indem Sie das Eingabefeld aktivieren und dann mit den Tasten <b>Nach oben <\/b>und <b>Nach unten <\/b>durch die Eintr&auml;ge navigieren.<\/p>\n<h2>Variableninhalte verfolgen<\/h2>\n<p>W&auml;hrend der Code durch einen Haltepunkt oder nach dem schrittweisen Durchlaufen mit der Taste <b>F11 <\/b>angehalten wurde, k&ouml;nnen Sie den Inhalt aller Variablen betrachten, die f&uuml;r die aktuelle Zeile sichtbar sind. Das hei&szlig;t also, dass Sie die in der Prozedur diese Zeile deklarierten Variablen sehen, die f&uuml;r die Prozedur definierten Parameter und &ouml;ffentlich deklarierte Variablen.<\/p>\n<p>Die Variablen werden im Bereich <b>Variablen <\/b>angezeigt. In Bild 7 sehen Sie die beiden Variablen <b>intZahl <\/b>und <b>strBeispieltext<\/b>.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1305_007.png\" alt=\"Anzeige von Variablen und ihren Inhalten\" width=\"649,559\" height=\"223,1244\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Anzeige von Variablen und ihren Inhalten<\/span><\/b><\/p>\n<p>Mit einem Doppelklick auf eine der Variablen wechseln Sie zum Bearbeiten-Modus f&uuml;r diese Variable. Sie k&ouml;nnen dann einen anderen Wert f&uuml;r diese Variable definieren (siehe Bild 8). Sie k&ouml;nnen auch die zu &auml;ndernde Variable ausw&auml;hlen und dann die Taste <b>F2 <\/b>dr&uuml;cken. Oder Sie w&auml;hlen den Kontextmen&uuml;-Eintrag <b>Wert festlegen <\/b>aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1305_008.png\" alt=\"&Auml;ndern von Variablenwerten\" width=\"524,559\" height=\"210,3429\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: &Auml;ndern von Variablenwerten<\/span><\/b><\/p>\n<p>Das ist gleichbedeutend damit, bei angehaltenem Code einer Variablen &uuml;ber den Debugging-Bereich einen neuen Wert zuzuweisen.<\/p>\n<p>Wenn eine Variable ein Objekt mit Eigenschaften enth&auml;lt, k&ouml;nnen Sie auch die Eigenschaften und deren Werte im Bereich <b>Variablen <\/b>untersuchen.<\/p>\n<h2>&Uuml;berwachungsausdr&uuml;cke definieren und nutzen<\/h2>\n<p>Je nach der Komplexit&auml;t einer Prozedur zeigt der <b>Variablen<\/b>-Bereich sehr viele Variablen und ihre Werte an. Hier f&auml;llt es schwer, die &Uuml;bersicht zu behalten. Genau hier setzt der Bereich <b>&Uuml;berwachen <\/b>an: Sie k&ouml;nnen diesem die Namen von Variablen oder auch komplette Ausdr&uuml;cke hinzuf&uuml;gen.<\/p>\n<p>Um einen solchen Ausdruck hinzuzuf&uuml;gen, klicken Sie auf die Plus-Schaltfl&auml;che (<b>+<\/b>) im Bereich <b>&Uuml;berwachen<\/b>. Es erscheint ein leeres Textfeld, in das Sie den Variablennamen oder den &Uuml;berwachungsausdruck eintragen (siehe Bild 9).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1305_009.png\" alt=\"Anlegen eines &Uuml;berwachungsausdrucks\" width=\"524,559\" height=\"313,9092\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Anlegen eines &Uuml;berwachungsausdrucks<\/span><\/b><\/p>\n<p>Danach zeigt der &Uuml;berwachen-Bereich den Wert des jeweiligen Ausdrucks an (siehe Bild 10).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1305_010.png\" alt=\"Anzeige des Wertes eines &Uuml;berwachungsausdrucks\" width=\"524,559\" height=\"306,5496\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Anzeige des Wertes eines &Uuml;berwachungsausdrucks<\/span><\/b><\/p>\n<h2>Aufrufliste beobachten<\/h2>\n<p>Wenn Sie ausgehend vom Aufruf einer Hauptroutine eine untergeordnete Routine aufrufen, m&ouml;chten Sie vielleicht wissen, von welcher Routine diese aufgerufen wurde. Dazu k&ouml;nnen Sie den Bereich <b>Aufrufliste <\/b>verwenden. Dieser zeigt wie in Bild 11 die Hierarchie der aufgerufenen Routinen an.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1305_011.png\" alt=\"Anzeige der Aufrufliste\" width=\"674,559\" height=\"236,9662\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Anzeige der Aufrufliste<\/span><\/b><\/p>\n<p>Hier hat die Routine <b>Main <\/b>die Funktion <b>Funktion <\/b>aufgerufen. In der Aufrufliste erscheint die aktuelle Routine immer ganz oben, darunter folgen die aufrufenden Routinen. Wenn Sie sich die aufrufende Routine ansehen wollen, brauchen Sie diese einfach nur in der Aufrufliste anzuklicken.<\/p>\n<h2>Haltepunkte verwalten<\/h2>\n<p>Gegebenenfalls haben Sie in einem umfangreicheren Projekt verschiedene Haltepunkte gesetzt. Ist das der Fall, wollen Sie diese vielleicht im &Uuml;berblick behalten. Dabei unterst&uuml;tzt Sie der Bereich <b>Haltepunkte<\/b> (siehe Bild 12). Dieser blendet einen Haltepunkt ein, sobald Sie diesen gesetzt haben, und entfernt diesen wieder aus der Liste, wenn Sie ihn aus dem Code bef&ouml;rdert haben. Sie k&ouml;nnen Haltepunkte nicht nur durch einen Klick links neben die Zeilennummer der gew&uuml;nschten Zeile wieder entfernen, sondern auch im <b>Haltepunkte<\/b>-Bereich. Hier markieren Sie den zu entfernenden Haltepunkt und klicken dann auf die <b>X<\/b>-Schaltfl&auml;che dieses Elements.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1305_012.png\" alt=\"Anzeige der Haltepunkte\" width=\"674,559\" height=\"367,7871\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: Anzeige der Haltepunkte<\/span><\/b><\/p>\n<p>Wenn Sie mit der Maus in die Zeile der Bereichs&uuml;berschrift <b>Haltepunkte <\/b>fahren, erscheinen dort drei Schaltfl&auml;chen. Die zweite ist interessant: Sie erlaubt es, alle aktuellen Haltepunkte zu deaktivieren. Sie k&ouml;nnen also, auch wenn Sie einige Haltepunkte angelegt haben, zwischendurch den Code ohne das Stoppen an diesen Haltepunkten ausf&uuml;hren (siehe Bild 13).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1305_013.png\" alt=\"Aktivieren und Deaktivieren von Haltepunkten\" width=\"424,5589\" height=\"216,0872\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 13: Aktivieren und Deaktivieren von Haltepunkten<\/span><\/b><\/p>\n<h2>Ausnahmen oder Laufzeitfehler<\/h2>\n<p>Laufzeitfehler werden ohne das von VBA bekannte Meldungsfenster, aber mit einer in das Codefenster integrierte Meldung angezeigt (siehe Bild 14).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_03\/pic_1305_014.png\" alt=\"Anzeige einer Ausnahme\" width=\"574,559\" height=\"247,6837\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 14: Anzeige einer Ausnahme<\/span><\/b><\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Dieser Beitrag hat die Debugging-Funktionen von Visual Studio Code mit twinBASIC erl&auml;utert. Damit k&ouml;nnen Sie Routinen komfortabel untersuchen, bevor Sie diese in der Praxis einsetzen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der Entwickler von twinBASIC, Wayne Philips, ist vor allem f&uuml;r sein Fehlerbehandlungstool vbWatchDog bekannt. Kein Wunder, dass er bei der Programmierung der Entwicklungsumgebung darauf geachtet hat, dass ausreichende Debugging-M&ouml;glichkeiten vorhanden sind. Wie Sie diese nutzen, zeigt der vorliegende Beitrag. Dabei lernen Sie die verschiedenen Bereiche wie Variablen, &Uuml;berwachen, Aufrufliste, Haltepunkte und den Debug-Bereich kennen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662021,66032021,44000025],"tags":[],"class_list":["post-55001305","post","type-post","status-publish","format-standard","hentry","category-662021","category-66032021","category-VBA_und_Programmiertechniken"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Debugging in twinBASIC - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Debugging in twinBASIC\" \/>\n<meta property=\"og:description\" content=\"Der Entwickler von twinBASIC, Wayne Philips, ist vor allem f&uuml;r sein Fehlerbehandlungstool vbWatchDog bekannt. Kein Wunder, dass er bei der Programmierung der Entwicklungsumgebung darauf geachtet hat, dass ausreichende Debugging-M&ouml;glichkeiten vorhanden sind. Wie Sie diese nutzen, zeigt der vorliegende Beitrag. Dabei lernen Sie die verschiedenen Bereiche wie Variablen, &Uuml;berwachen, Aufrufliste, Haltepunkte und den Debug-Bereich kennen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-07-31T10:14:13+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg07.met.vgwort.de\/na\/c64c4980a7404d59a09cde5604ec6292\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"8\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Debugging_in_twinBASIC\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Debugging_in_twinBASIC\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Debugging in twinBASIC\",\"datePublished\":\"2021-07-31T10:14:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Debugging_in_twinBASIC\\\/\"},\"wordCount\":1658,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Debugging_in_twinBASIC\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/c64c4980a7404d59a09cde5604ec6292\",\"articleSection\":[\"2021\",\"3\\\/2021\",\"VBA und Programmiertechniken\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Debugging_in_twinBASIC\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Debugging_in_twinBASIC\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Debugging_in_twinBASIC\\\/\",\"name\":\"Debugging in twinBASIC - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Debugging_in_twinBASIC\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Debugging_in_twinBASIC\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/c64c4980a7404d59a09cde5604ec6292\",\"datePublished\":\"2021-07-31T10:14:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Debugging_in_twinBASIC\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Debugging_in_twinBASIC\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Debugging_in_twinBASIC\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/c64c4980a7404d59a09cde5604ec6292\",\"contentUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/c64c4980a7404d59a09cde5604ec6292\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Debugging_in_twinBASIC\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Debugging in twinBASIC\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Debugging in twinBASIC - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/","og_locale":"de_DE","og_type":"article","og_title":"Debugging in twinBASIC","og_description":"Der Entwickler von twinBASIC, Wayne Philips, ist vor allem f&uuml;r sein Fehlerbehandlungstool vbWatchDog bekannt. Kein Wunder, dass er bei der Programmierung der Entwicklungsumgebung darauf geachtet hat, dass ausreichende Debugging-M&ouml;glichkeiten vorhanden sind. Wie Sie diese nutzen, zeigt der vorliegende Beitrag. Dabei lernen Sie die verschiedenen Bereiche wie Variablen, &Uuml;berwachen, Aufrufliste, Haltepunkte und den Debug-Bereich kennen.","og_url":"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-07-31T10:14:13+00:00","og_image":[{"url":"http:\/\/vg07.met.vgwort.de\/na\/c64c4980a7404d59a09cde5604ec6292","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"8\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Debugging in twinBASIC","datePublished":"2021-07-31T10:14:13+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/"},"wordCount":1658,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/c64c4980a7404d59a09cde5604ec6292","articleSection":["2021","3\/2021","VBA und Programmiertechniken"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/","url":"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/","name":"Debugging in twinBASIC - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/c64c4980a7404d59a09cde5604ec6292","datePublished":"2021-07-31T10:14:13+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/#primaryimage","url":"http:\/\/vg07.met.vgwort.de\/na\/c64c4980a7404d59a09cde5604ec6292","contentUrl":"http:\/\/vg07.met.vgwort.de\/na\/c64c4980a7404d59a09cde5604ec6292"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Debugging_in_twinBASIC\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Debugging in twinBASIC"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55001305"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001305\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}