[Win-X64] Debugger und UncompressMemory()

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
TheCube
Beiträge: 150
Registriert: 20.07.2010 23:59
Computerausstattung: Risen 3400G 16MB Win10-64Bit
Wohnort: NRW

[Win-X64] Debugger und UncompressMemory()

Beitrag von TheCube »

PB-Version: PureBasic 5.73 32Bit
OS: Windows 10 64 Bit
Compilereinstellungen:
[ ] Unicode-Executable erstellen
[ ] Thread-sicheres Executable erstellen
[ ] OnError-Unterstützung einschalten
[x] Moderne Themen-Unterstützung aktivieren (für Windows XP und höher)
[ ] Administrator-Modus für Windows Vista und höher anfordern
[ ] User-Modus für Windows Vista und höher anfordern (keine Virtualisierung)
[ ] DPI aware


Mir hat folgendes doch etwas Zeit für die Fehlersuche gekostet, bin mir aber nicht sicher, ob das ein Bug ist oder so sein soll ....
Debug UncompressMemory( ... ) entpackt nichts, wenn der Debugger abgeschaltet ist.
result=UncompressMemory( ... ) : Debug result funktioniert mit und ohne Debugger korrekt

Hier ein zusammengekürzter Beispielcode. Mit Debugger an schwarzer Bildschrim, keine Fehlermeldungen. Ok.
Mit Debugger aus wird aber ein Catchsprite-Fehler ausgegeben.

Code: Alles auswählen

UseBriefLZPacker()
unpacksize = PeekL(?Info_bmp_start+8)   ; Get unpacked size
Debug unpacksize
*memLabel=AllocateMemory(unpacksize) ; Get memory for unpacked data
If *memLabel
    Debug "Startadresse des BMP-Speicherbereichs ist:"
    Debug *memLabel
  Else
    MessageRequester("Error", "Konnte den angeforderten Speicher nicht reservieren!", 0)
EndIf

;result=UncompressMemory(?Info_bmp_start, ?Info_bmp_end-?Info_bmp_start, *memLabel, unpacksize, #PB_PackerPlugin_BriefLZ)  ; ### Funktioniert
;Debug result                                                                                                              ; ### mit & ohne
;If result=-1 : MessageRequester("Error", "Konnte Daten nicht entpacken!", 0) : End : EndIf                                ; ### aktivem Debugger

Debug UncompressMemory(?Info_bmp_start, ?Info_bmp_end-?Info_bmp_start, *memLabel, unpacksize, #PB_PackerPlugin_BriefLZ)    ; ### Entpackt nur mit Debugger an !?

ExamineDesktops() : dx=DesktopWidth(0) : Debug dx : dy=DesktopHeight(0) : Debug dy

; ---------------------------------------------------------------------------------------------------------
If InitSprite() = 0 Or InitKeyboard() = 0
  MessageRequester("Error", "Gfx system can't be initialized", 0)
  End
EndIf
 
If OpenScreen(dx, dy, 32, "TestScreen")    ; Now, open a 32 bits screen
  If (CatchSprite(33, *memLabel)=0) : CloseScreen(): MessageRequester("Error", "Gfx system catch error", 0) : End : EndIf

  Repeat
    Delay(100)
    FlipBuffers()
    ExamineKeyboard()
  Until KeyboardPushed(#PB_Key_Escape)
  
Else
  MessageRequester("Error", "Can't open a 32 bit screen !", 0)
EndIf
CloseScreen()
End

DataSection
  Info_bmp_start: ;{ Compressed with BriefLZ (Size of Datas: 1112 Bytes / Unpacked size: 2998 bytes)
  Data.q $00000000626C7A31,$0000000000000BB6,$0000000000080000,$00000BB64D0C0042,$0800002800000436
  Data.q $0014000000600000,$1660A00800010000,$01500000030EC400,$0328FFFF0026FF03,$FFFF0429FF0000FF
  Data.q $FFFF082CFFFF052A,$0D30FF0000FF0A2E,$1134FFFF1033FFFF,$FF0000FF1336FFFF,$FFFF1638FFFF1437
  Data.q $00FF1A3CFFFF183A,$1E3FFFFF1C3DFF00,$2041FFFF1F40FFFF,$FFFF2142FF0000FF,$FFFF2646FFFF2444
  Data.q $2B4AFF0000FF2948,$2D4CFFFF2C4BFFFF,$FF0000FF304EFFFF,$FFFF3452FFFF3250,$00FF3855FFFF3754
  Data.q $3C59FFFF3956FF00,$405CFFFF3E5AFFFF,$FFFF425EFF0000FF,$FFFF4762FFFF4560,$4C66FF0000FF4964
  Data.q $516AFFFF4E68FFFF,$FF0000FF536CFFFF,$FFFF5770FFFF556E,$00FF5A72FFFF5870,$5F76FFFF5C74FF00
  Data.q $6178FFFF6077FFFF,$FFFF647BFF0000FF,$FFFF6C81FFFF687E,$768AFF0000FF6E83,$7B8EFFFF798CFFFF
  Data.q $FF0000FF7D90FFFF,$FFFF8092FFFF7F92,$00FF8496FFFF8294,$8C9DFFFF899AFF00,$90A0FFFF8E9EFFFF
  Data.q $FFFF92A2FF0000FF,$FFFF99A8FFFF95A4,$A1AEFF0000FF9DAB,$A4B1FFFFA3B0FFFF,$FF0000FFA5B2FFFF
  Data.q $FFFFAAB6FFFFA8B4,$00FFAEBAFFFFACB8,$B1BCFFFFB0BBFF00,$B5C0FFFFB3BEFFFF,$FFFFB8C2FF0000FF
  Data.q $FFFFBCC5FFFFBAC4,$C0C9FF0000FFBDC6,$C7CFFFFFC2CBFFFF,$FF0000FFC8D0FFFF,$FFFFCCD3FFFFCBD2
  Data.q $00FFCFD6FFFFCDD4,$D9DEFFFFD4DAFF00,$E0E4FFFFDEE2FFFF,$FFFFE2E6FF0000FF,$FFFFE7EAFFFFE4E8
  Data.q $E9ECFF0000FFE8EB,$F1F2FFFFECEEFFFF,$FF0000FFF3F4FFFF,$FFFFF7F8FFFFF5F6,$5DFFFCFCFFFFFAFA
  Data.q $000000FFFEFEFF01,$E82800EBA003570B,$0003002008053F42,$0D42A71013000000,$00040900B07E1010
  Data.q $6E4F1700061900BC,$060D06000010B031,$6E4800050443040F,$6E6E673300000000,$6E5E230000002A5F
  Data.q $043C193D6321566E,$00080006276E2600,$0900144C3D6B4B0C,$305F3800046E6E57,$6E5100000A6E2800
  Data.q $5F4A001E2000076C,$0229690014141414,$2300146C36050500,$40115D270B19456E,$1F4380521B001A15
  Data.q $1E00025965020006,$3C0000246E461802,$5F80436E4F121B69,$0004301E0C356E17,$6E042B0300055F4A
  Data.q $00B020095555002D,$5000505B060D6E39,$68000000494A0000,$8021616E212B555F,$092C6E04226E2A5F
  Data.q $338C000251005D85,$000000425000036E,$407E6E255F815267,$942022225F4A0002,$1810AE00566E3E0C
  Data.q $455C00C100141D6E,$5FA0AE156E280005,$6065686C5F000066,$003B626D3600002D,$1C141C6E1410BE00
  Data.q $0807061B4A160002,$176E270005435800,$6E20212D1F5F58A4,$7C1D062B6E01063A,$0553463F10812700
  Data.q $355F641FC9803000,$00174C4316536E4E,$000000AF415F11C0,$0021E0055442FC4F,$1340006E31000415
  Data.q $00443400005A5406,$2F001A0021370000,$1735376E47250039,$00246E2A5F008B00,$6E1A00003B002310
  Data.q $7055606E1E001244,$0D001902165C5E00,$1A0000850B296E40,$046509056E200000,$4D0700026E204A00
  Data.q $6E6E6E6122000000,$0E010B0019155847,$430A316A6E6E6E53,$2E0000156E320000,$0000000E00820009
  Data.q $0000CCC815210A00,$5008009EAFE01B0E,$DFBB890006121E21,$00000000000077FC
  Info_bmp_end: ;}
EndDataSection
// Verschoben von "Bugs" nach "Allgemein" (Kiffi)
Zuletzt geändert von TheCube am 17.12.2020 21:07, insgesamt 1-mal geändert.
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: [Win-X64] Debugger und UncompressMemory()

Beitrag von mk-soft »

Kein Bug, blöde falle :mrgreen:

Wo Debug vorgesetzt wird auch nur mit Debugger ausgeführt.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
TheCube
Beiträge: 150
Registriert: 20.07.2010 23:59
Computerausstattung: Risen 3400G 16MB Win10-64Bit
Wohnort: NRW

Re: [Win-X64] Debugger und UncompressMemory()

Beitrag von TheCube »

Danke die Antwort und das Beitragverschieben ... kann entsprechend auch gerne in den Mülleimer weitergeschoben werden.
So, ich klatsch mir jetzt noch ein paar mal kräftig die Hand gegen die Stirn .... :coderselixir:
Antworten