Seite 1 von 1

disableDebugger: invalid memory access ?

Verfasst: 14.11.2007 10:50
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

Re: disableDebugger: invalid memory access ?

Verfasst: 14.11.2007 10:57
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

Verfasst: 14.11.2007 11:12
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

Verfasst: 14.11.2007 11:31
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: