PureBasic 3.94 für Windows (final)

Ankündigungen PureBasic oder die Community betreffend.
FloHimself
Beiträge: 338
Registriert: 05.09.2004 18:47

Re: Sehr gute IDE nicht einigen haken

Beitrag von FloHimself »

mk-soft hat geschrieben:String´s sind noch nicht threadfest, aber mit kleinen handshake tricks über globalvariablen kann man es umgehen.
mk-soft hat geschrieben:Und alle laufen stabil.
tja, mal geht es gut, mal nicht. du solltest threads nicht über *einfache*
globale variablen synchronisieren.

mehr hier:
http://forums.purebasic.com/german/view ... l+sections
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Beitrag von Lukaso »

Ich hab das schonmal erwähnt, aber irgendwie sind die Zeilenausgaben beim Debuger der 3.94 fürn arsch. Beim 3.93er waren die Zeilen eigentlich immer richtig. Das kann ich hier nicht behaupten. Ich habe einen Fehler in meinem Player, der passiert sehr sehr sehr Selten, und wenn er mal passiert, sind die Informationen im Debugger unbrauchbar. Das ist die berümte suche der Nadel im Heuhaufen.
Line: 117 - Invalid memory access.
Auszug aus dem, wass der Debugger zeigt:

Code: Alles auswählen

[111] HideWindow(#Player_Window, 0)
[112] 
[113] Repeat
[114]    
[115]   Event = WaitWindowEvent()
[116]   
Fehlerzeile: [117]   WindowID = EventWindowID()
[118]   
[119]   GadgetID = EventGadgetID()
[120]   
[121]   EventType = EventType()
[122]   
[123]   MenuID = EventMenuID()
Komisch das ganze ... :cry:
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Benutzeravatar
mk-soft
Beiträge: 3846
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

String´s und Newlist bearbeiten vermeide ich natürlich in Thread´s. Lesen keine Probleme.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Siehe hier Lukaso.

Das nervt durchaus schon so langsam...
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

Also ich hab das selbe prob wie lukaso.
der debuger markiert zeilen die teilweise den error messages absolut wiedersprechen.
nachfolgend mal 2 bilder die das zeigen:

Das folgende bild zeigt die vom debuger markierte stelle im code (zeile 3990)
Bild

und die dazugehörige Msg aus der IDE ist diese:
Bild

Seit wann hat DisableDebuger was mit #File zu tun???

Leider muß ich auch sagen das der Debuger zur zeit noch unbrauchbar ist. Schade aber so werd ich wohl erst mal weiter mit PB 3.93 arbeiten müßen.

Was aber noch lustiger ist ist das in der Msg mal steht das ein File nich initialisiert ist ne min später bei erneutem versuch steht dann auf einmal drin "invailed memory...." :shock: der debuger bleibt aber an gleicher stelle stehen
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

@nicolaus: Woher soll der Debugger auch wissen wo dein programm abstürzt wenn du ihn disablest? Er kommt bei "DisableDebugger" an, setzt die Zeile, geht zur nächsten Zeile, da er aber deaktiviert ist kann er die Zeile nicht mehr setzen. Tritt nun ein Fehler auf, bemerkt der Debugger das wegen der Exception von Windows aber trotzdem. Da die letzte gesetze Zeile ja "DisableDebugger" war, ist der Fehler also in der Zeile. Das der Fehler paar Zeilen tiefer aufgetreten ist kann er ja nicht ahnen. Die einzige Möglichkeit des Debuggers wäre es den ganzen Block vom "DisableDebugger" bis zum nächsten "EnableDebugger" zu makieren.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

Deeem2031 hat geschrieben:@nicolaus: Woher soll der Debugger auch wissen wo dein programm abstürzt wenn du ihn disablest? Er kommt bei "DisableDebugger" an, setzt die Zeile, geht zur nächsten Zeile, da er aber deaktiviert ist kann er die Zeile nicht mehr setzen. Tritt nun ein Fehler auf, bemerkt der Debugger das wegen der Exception von Windows aber trotzdem. Da die letzte gesetze Zeile ja "DisableDebugger" war, ist der Fehler also in der Zeile. Das der Fehler paar Zeilen tiefer aufgetreten ist kann er ja nicht ahnen. Die einzige Möglichkeit des Debuggers wäre es den ganzen Block vom "DisableDebugger" bis zum nächsten "EnableDebugger" zu makieren.
Also dann verstehe ich wohl DisableDebuger nich ganz richtig und die hilfe ist ja dann auch falsch denn da steht:
Dies schaltet die Debugger-Prüfroutinen bei nach diesem Befehl folgenden Sourcecode aus.
und wenn der Debuger nun aus ist wie kann er da nen fehler feststellen?????
Bis zu der Zeile DisableDebuger is er an und erst dort wird er abgeschalten. wenn nun vor dieser zeile nen Fehler kommt kann ja wohl schlecht erst die zeile Disabledebuger markiert werden. Noch dazu ist in dem Block von Disabledebuger bis Enabledebuger nix was mit nem #File zu tun hat. Is doch schon sehr verwirrend.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

nicolaus hat geschrieben:und wenn der Debuger nun aus ist wie kann er da nen fehler feststellen?????
Hm... stimmt eigentlich, Fehler wie "File object not initialized" dürften eigentlich garnicht angezeigt werden. Allerdings Fehler sowie "invalid memory access" werden immer angezeigt, egal ob mit disabledebugger oder ohne, da diese Fehler von Windows gemeldet werden und nicht vom Programm selber.
nicolaus hat geschrieben:Noch dazu ist in dem Block von Disabledebuger bis Enabledebuger nix was mit nem #File zu tun hat. Is doch schon sehr verwirrend.
Das ist wirklich verwirrend, allerdings könnte es auch an der falschen Bedienung von "DisableDebugger" liegen. Du hast nämlich den Befehl in einer Procedure, also musst du "EnableDebugger" auch in der selben Procedure aufrufen, oder du weißt was du tust ;)
Sowas wie "Procedure DD():DisableDebugger:Endprocedure" und "Procedure ED():EnableDebugger:Endprocedure" funktioniert nämlich nicht.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

also der block von DisableDebuger bis EnableDebuger ist in ein und der selben Procedure und sieht so aus:

Code: Alles auswählen

DisableDebugger
;{ NewsTicker-Drawing
  If INI\ShowInfoTicker 
    UseImage(#pic_newsticker)
    StartDrawing(ImageOutput())
    DrawingMode(0)
    Box(0,0,ImageWidth(),ImageHeight()+1,RGB($17,$52,$99))
    DrawingMode(1)
    FrontColor(0,0,0)
    DrawingFont(LoadFont(#fot_newsticker,"Verdana",15,#PB_Font_Italic))
    Locate(9,3)
    DrawText(AnimatedNews) 
    DrawingMode(1)
    FrontColor(237,203,12)
    DrawingFont(LoadFont(#fot_newsticker,"Verdana",15,#PB_Font_Italic))
    Locate(8,1)
    DrawText(AnimatedNews)
    StopDrawing()
    SetGadgetState(#img_newsticker,UseImage(#pic_newsticker))
  EndIf ;}
EnableDebugger
Wie du siehst is da nix was mit Files zu tun hat.
Ich bin halt auch der meinung das der fehler ganz wo anders aufttritt und schon was mit nem file zu tun hat. Das prob ist der neue Debuger der wohl noch recht bugy ist.
freak
PureBasic Team
Beiträge: 766
Registriert: 29.08.2004 00:20
Wohnort: Stuttgart

Beitrag von freak »

Du hast bestimmt nen thread irgendwo am laufen, oder?
Der Debugger ist dafür nicht ausgelegt. Da stimmen die angegebenen Zeilennummern nicht mehr.
Antworten