Debugger(optionen)

Anfängerfragen zum Programmieren mit PureBasic.
Salafat
Beiträge: 30
Registriert: 05.01.2012 07:40
Computerausstattung: AMD FX-8350 Eight-Core-Prozessor 4,00 GHz
8 GB RAM
Windows 7 64-Bit
Wohnort: Berlin

Debugger(optionen)

Beitrag von Salafat »

Hallo,

so schön ich es einerseits finde, daß PureBasic offensichtlich außerordentlich reichhaltige Debugging-Optionen bereithält, so sehr frustriert es mich, daß häufig die elementarsten Funktionen eines Debuggers bei mir häufig nicht so funktionieren, wie ich das von sehr viel anspruchsloseren Debuggern (wie etwa dem VBA-Debugger) gewohnt bin.

Erstens scheint es nicht möglich zu sein, einen Quellkode vom Start weg und ohne vorher Haltepunkte zu definieren, also beginnend bei der ersten Zeile im Einzelschrittmodus abarbeiten zu lassen. Bei VB ging das einfach durch Drücken von F8. F8 scheint in PureBasic die gleiche Funktion zu haben, nur ist es zu Beginn (also ohne daß ich vorher manuell den Debugger gestartet habe) grau unterlegt bzw. deaktiviert.

Ein anderes häufig auftretendes Problem ist, daß bei Programmen, die ein Fenster (oder GUI) erzeugen, dieses nach Start des Programms manchmal nicht bedienbar ist; es steht dann immer "(keine Rückmeldung) in der Titelzeile, und die Gadgets des Fenster werden entweder gar nicht angezeigt oder können nicht angeklickt werden. Wie gesagt: Manchmal, aber nicht immer; wovon das abhängt ist mir gänzlich unbekannt.

Ich muß auch sagen, daß der Hilfe-Text zum Debugger ("Benutzen des Debuggers") zwar ausführlich, für mich aber wenig hilfreich ist. Demjenigen, der sich erst einmal orientieren will (und an den sollte man bei der Abfassung einer Hilfe immer zuerst denken) ist es verhältnismäßig egal, in wievielen Versionen der Debugger vorliegt. Absatzweise wird dort beschrieben, was man alles machen kann, ohne erst einmal die Grundfunktionen ausführlich zu beschreiben. Und: Obwohl dort, wie gesagt, viel geredet wird, weiß ich bis heute nicht, was denn genau der Unterschied zwischen a) Kompilieren mit Debugger, b) Kompilieren ohne Debugger, aber mit der Option "Debugger verwenden" oder c) Kompilieren ohne Debugger und ausgeschalteter Option "Debugger verwenden", aber mit Debugger-Befehlen im Quelltext selbst ist.

Die wichtigste Funktion eines Debuggers ist meiner Ansicht nach die Variablenbeobachtung. Dazu heißt es dort:
Der Wert einer Variablen kann sehr schnell angesehen werden, während das Programm läuft, indem der Mauspfeil über eine Variable im Quellcode bewegt und einen kleinen Moment gewartet wird. Wenn die Variable aktuell im Sichtbereich ist und angezeigt werden kann, dann wird ihr Wert als Tooltip an der Mausposition angezeigt.
Ich aber habe die Erfahrung gemacht, daß genau das häufig versagt: Man kann den Mauszeiger bei angehaltenem Programm solange über einer Variable ruhen lassen, wie man will; es wird überhaupt nichts angezeigt. Dann bleibt nur noch der Rückgriff auf das Beobachtungsfenster, aber das ist natürlich ein "suboptimaler" Behelf, den ich in VB nie nötig hatte.
PureBasic v5.11 x64
Windows 7 64-Bit
AMD FX-8350 Eight-Core Processor 4 GHz, 8 GB Arbeitsspeicher
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Debugger(optionen)

Beitrag von NicTheQuick »

Salafat hat geschrieben:Ein anderes häufig auftretendes Problem ist, daß bei Programmen, die ein Fenster (oder GUI) erzeugen, dieses nach Start des Programms manchmal nicht bedienbar ist; es steht dann immer "(keine Rückmeldung) in der Titelzeile, und die Gadgets des Fenster werden entweder gar nicht angezeigt oder können nicht angeklickt werden. Wie gesagt: Manchmal, aber nicht immer; wovon das abhängt ist mir gänzlich unbekannt.
Das kann ich dir leicht erklären. Wenn keine Events von '(Wait)WindowEvent()' abgearbeitet werden, was nach Anhalten mit dem Debugger ja passiert, wird alles, was mit GUI zu tun hat, auch nicht weiter aktualisiert. Im Grunde passiert das selbe wie wenn du einfach '(Wait)WindowEvent()' nicht mehr aufrufst, der Rest des Programms aber dennoch läuft.
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: Debugger(optionen)

Beitrag von CSHW89 »

Salafat hat geschrieben:Erstens scheint es nicht möglich zu sein, einen Quellkode vom Start weg und ohne vorher Haltepunkte zu definieren, also beginnend bei der ersten Zeile im Einzelschrittmodus abarbeiten zu lassen. Bei VB ging das einfach durch Drücken von F8. F8 scheint in PureBasic die gleiche Funktion zu haben, nur ist es zu Beginn (also ohne daß ich vorher manuell den Debugger gestartet habe) grau unterlegt bzw. deaktiviert.
Also um ehrlich zu sein, habe ich sowas nie gebraucht. Aber ich wüsste jetzt auch nicht, was so schlimm daran wäre, wenn man dann einfach in der ersten Zeile ein Breakpunkt setzt. Falls es keine gute Lösung für dich ist, kannst du es im englischen Forum als Wunsch äußern:
http://www.purebasic.fr/english/viewfor ... 15c0814862
Salafat hat geschrieben:Ein anderes häufig auftretendes Problem ist, daß bei Programmen, die ein Fenster (oder GUI) erzeugen, dieses nach Start des Programms manchmal nicht bedienbar ist; es steht dann immer "(keine Rückmeldung) in der Titelzeile, und die Gadgets des Fenster werden entweder gar nicht angezeigt oder können nicht angeklickt werden. Wie gesagt: Manchmal, aber nicht immer; wovon das abhängt ist mir gänzlich unbekannt.
Vielleicht die Eventloop vergessen. Ansonsten kann man da wohl ohne Code nix zu sagen.
Edit: NicTheQuick's Idee find ich besser :mrgreen:
Salafat hat geschrieben:Und: Obwohl dort, wie gesagt, viel geredet wird, weiß ich bis heute nicht, was denn genau der Unterschied zwischen a) Kompilieren mit Debugger, b) Kompilieren ohne Debugger, aber mit der Option "Debugger verwenden" oder c) Kompilieren ohne Debugger und ausgeschalteter Option "Debugger verwenden", aber mit Debugger-Befehlen im Quelltext selbst ist.
Meines Wissens gibt es keinen! Du kannst halt an verschiedenen Stellen den Debugger ein-/ausschalten.
Salafat hat geschrieben:Ich aber habe die Erfahrung gemacht, daß genau das häufig versagt: Man kann den Mauszeiger bei angehaltenem Programm solange über einer Variable ruhen lassen, wie man will; es wird überhaupt nichts angezeigt. Dann bleibt nur noch der Rückgriff auf das Beobachtungsfenster, aber das ist natürlich ein "suboptimaler" Behelf, den ich in VB nie nötig hatte.
Hatte ich bisher nie Probleme mit. Versuchs mal so, dass du, bevor du mit der Maus über eine Variable drüberfährt, zunächst das Quelltextfenster aktivierst, also einmal auf den Quelltext klicken.

lg Kevin
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Antworten