disableDebugger: invalid memory access ?

Anfängerfragen zum Programmieren mit PureBasic.
sibru
Beiträge: 265
Registriert: 15.09.2004 18:11
Wohnort: hamburg

disableDebugger: invalid memory access ?

Beitrag von sibru »

Hallo,

was kann ich gegen den Debugger-Fehler "invalid memory access" beim disableDebugger machen ? (PB3.94)
Ist der Debugger um ´nen Ego-Mode erweitert worden ? :twisted:


Gruss Siggi
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: disableDebugger: invalid memory access ?

Beitrag von Kiffi »

sibru hat geschrieben:was kann ich gegen den Debugger-Fehler "invalid memory access" beim disableDebugger machen ? (PB3.94)
unter PB4.1 gibt's keinen IMA

Code: Alles auswählen

DisableDebugger
Debug "Hallo (ohne Debugger)"
MessageRequester("", "Hallo (ohne Debugger)")

EnableDebugger
Debug "Hallo (mit Debugger)"
MessageRequester("", "Hallo (mit Debugger)")
Ansonsten: Ein wenig Code, der den IMA reproduziert, wäre nicht schlecht.

Grüße ... Kiffi
a²+b²=mc²
sibru
Beiträge: 265
Registriert: 15.09.2004 18:11
Wohnort: hamburg

Beitrag von sibru »

Steckt in ´nem 8000-Zeilen-Code (´ne Art Laufzeit-Visual-Designer...)
und wird auch sauber durchlaufen, lediglich beim 3. oder 4. Durchlauf
der Gadgets-Aufbau-Funktion spackt´s...

Code: Alles auswählen

   For GadNr = 1 To GadDefs
      Typ=Gad(GadNr)\Typ
      Select Typ
        
         Case 3 : Gad(GadNr)\GID = PanelGadget   (Gad(GadNr)\GNR, Gad(GadNr)\x, Gad(GadNr)\y, Gad(GadNr)\b, Gad(GadNr)\h)
            DisableDebugger
            AddGadgetItem (Gad(GadNr)\GNR,0,Gad(GadNr)\Text$)
            EnableDebugger
Ohne DisableDebugger meldet Debugger beim AddGadgetItem "Gadget
not initialized" (GadgetID {\GID} ist jedoch belegt, Gadget erscheint im
Fenster, sieht alles korrekt aus...)

Unter PB 3.80 läuft´s prima...


Gruss Siggi
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

@ sibru:
Du hast doch auch den Thread "WinHdl --> #WinNr ?" eröffnet, oder?
Ich kann das Problem an deinem gegebenem Code nicht nachvollziehen aber ich vermute (auch aufgrund des anderen Threads) stark, dass du aus alten Zeiten (Version 3.80 ist bestimmt schon älter als ich (19) :lol: ) noch Gewohnheiten drauf hast, die PB heute (Version 3.94 oder höher) einfach nicht akzeptiert.

Bitte prüfe immer, ob die IDs (ImageID, SpriteID, WindowID, GadgetID, ...) auch gültig ist, bevor du sie benutzt, sonst gibt der Debugger einen Fehler aus.

Benutze dazu einfach die entsprechenden Funktionen:
ImageID => isImage()
SpriteID => isSprite()
WindowID => isWindow()
GadgetID => isGadget() (ab Version 4.00 gibt es sogar GadgetType() um den typ eines Gadgets festzustellen!)

Solltest du von diesem Fehler nicht betroffen sein, dann gebe ich dir trotzdem diesen Rat. :allright:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten