Debugger Fehler?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Debugger Fehler?

Beitrag von gnasen »

Ich habe hier ein sehr seltsames Verhalten beim Debugger beobachtet. Kann mir jemand erklären, warum das Programm am ProcedureReturn nicht sofort zurückspringt?
Es gibt keine Threads!
Noch ein sehr wichtiger Punkt:
Lasse ich mir die Variable *obj ausgeben, hat sie den richtigen Wert. Der Wert der Rückgabe ist allerdings 0 (als ob er das ProcedureReturn tatsächlich ignoriert)

edit: wer wagt es, meine Bilder bei nem anderen Dienst hochzuladen ;) vorher wurden die bei Klick vergrößert. Jetzt beim abload-dienst:
Bild
Zuletzt geändert von gnasen am 06.12.2011 21:51, insgesamt 2-mal geändert.
pb 4.51
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Debugger Fehler?

Beitrag von ts-soft »

6 kleine Bilderlein, die konnte keiner sehen <)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10725
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Debugger Fehler?

Beitrag von Kiffi »

@gnasen: wie wäre es mit abload.de? :wink:

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: Debugger Fehler?

Beitrag von CSHW89 »

Vielleicht wäre da ein Codeschnippsel doch die bessere Wahl, um den (möglichen) Fehler zu reproduzieren. Hab mir mal eben ein kleinen Testcode zusammengeschrieben, den ich in etwa aus den wenigen Informationen der Bilder produziert hab. Resultat: kein Fehler.

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
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Re: Debugger Fehler?

Beitrag von gnasen »

Das projekt ist äußerst mächtig und einen Fehler dieser Art habe ich noch nie gesehen.
Einen Codeschnipsel zu erstellen ist mir bisher nicht gelungen, wollte das ganze aber zumindest schnell dokumentieren, falls der Fehler so plötzlich verschwindet, wie er aufgetreten ist.
pb 4.51
Ramihyn_
Beiträge: 61
Registriert: 20.06.2007 10:56

Re: Debugger Fehler?

Beitrag von Ramihyn_ »

Leider kenne ich diesen Fehler ebenfalls aus einem grösseren Projekt. Ich habe es aber nie geschafft ihn in einem kleinen Beispiel zu reproduzieren um ihn reporten zu können.

Bei meinen Versuchen herauszubekommen was genau eigentlich dort auftritt - denn es könnte ja ein reines Problem der Anzeige des Debuggers sein (singlestepping über bestimmte Ketten komplexer Ausdrücke) - ist der Fehler einfach plötzlich verschwunden. Sofern sich dieser Fehler also hier nicht erklären lässt, würde ich Dir vorschlagen das gleiche zu tun. Zerlege die IF Zeile in eine Kette einfacherer kleinerer Konstrukte und schau ob Du dadurch entweder der problematischen Stelle näher kommst, oder der Fehler ebenfalls plötzlich einfach verschwindet.

Vielleicht befindet sich ja auch ein syntaktischer Fehler in der IF Zeile weiter rechts, den wir nicht sehen können und der Compiler fälschlicherweise übersetzt hat. Sowas findet sich dabei dann auch :)

Übrigens arbeite ich deshalb immer mit expliziten Klammern um die Anzahl möglicher Problemquellen zu reduzieren.

also z.B.

Code: Alles auswählen

If ((*obj\type = #obj_shape) or (*obj\type = #obj_border))
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Re: Debugger Fehler?

Beitrag von gnasen »

Ich habe jetzt die Zeile, inklusive dem nicht sichtbaren Teil (identische Abfragen nur mit anderen Konstanten), in elseif Blöcke zerlegt. Selber Fehler, nur jetzt in einem der entsprechenden "ElseIf-Blöcke".
Habe die Prozedur jetzt durch etwas funktionsgleiches ersetzt und das ganze funktioniert, wie zu erwarten, ganz wunderbar. Seltsamer Fehler...
pb 4.51
Ramihyn_
Beiträge: 61
Registriert: 20.06.2007 10:56

Re: Debugger Fehler?

Beitrag von Ramihyn_ »

gnasen hat geschrieben:Ich habe jetzt die Zeile, inklusive dem nicht sichtbaren Teil (identische Abfragen nur mit anderen Konstanten), in elseif Blöcke zerlegt. Selber Fehler, nur jetzt in einem der entsprechenden "ElseIf-Blöcke".
Habe die Prozedur jetzt durch etwas funktionsgleiches ersetzt und das ganze funktioniert, wie zu erwarten, ganz wunderbar. Seltsamer Fehler...
Ja /:->

Ich tippe auf einen Fehler des Compilers der durch diesen spezifischen Zustand des Projektes getriggert wird. Bei mir war es so, dass ich den Fehler später nicht mehr reproduzieren konnte nachdem das Projekt an einigen anderen Stellen geändert wurde. Falls der Fehler sich jetzt gerade bei Dir noch reproduzieren lässt, wäre es mal interessant den generierten Assembler Code für die Funktion zu sehen (pbcompiler /commented). Dann würde man das mit dem erzeugten Assembler code der gleichen Abfrage in einem funktionierenden Programm vergleichen können und evtl. einen Hinweis auf den Ursprung des Problemes bekommen (wäre dann aber etwas was Fred/Freak sich anschauen müssten).

Mir den generierten Assembler code anzusehen, hab ich damals leider verpennt weil ich die /commented Flagge noch nicht kannte.
Antworten