PB 6.20 - Bug bei GOSUB -> Absturz - [WIN11] [Linux]

Anfängerfragen zum Programmieren mit PureBasic.
Blitzer
Beiträge: 97
Registriert: 26.09.2004 14:33
Wohnort: Lower Saxony

PB 6.20 - Bug bei GOSUB -> Absturz - [WIN11] [Linux]

Beitrag von Blitzer »

IDE build on 02/12/2025 [16:01] by fred
Branch: v6.20

Falsche Anzeige bei GOSUB im Debugger. Absturz unter WIN11 oder unter Linux (Ubuntu 24.04.2 LTS)

Der erste Quellcode folgt immer einer Idee. Um Spaghetti-Code bei der Umsetzung zu verhindern und um schnell die ersten Ergebnisse zu bekommen, verwende ich gerne Unterroutinen als einfaches Skelett. Später werden Proceduren, IF's, weniger Variablen, usw. eingearbeitet. Subroutinen sind leider aus der Mode gekommen und werden seltener verwendet ...

Code: Alles auswählen

; Sprungmarke GOSUB 
; Anzeige: 5 Werte, danach Absturz
;
Gosub SUB_4
Gosub SUB_2
Gosub SUB_1
Gosub SUB_3
;
SUB_1:
Debug Str(1)
Return
;
SUB_2:
Debug Str(2)
Return
;
SUB_3:
Debug Str(3)
Return
;
SUB_4:
Debug Str(4)
Return
(Ich wünsche jeden der mich kennt, 10 x soviel wie er mir gönnt)
Benutzeravatar
jacdelad
Beiträge: 404
Registriert: 03.02.2021 13:39
Wohnort: Riesa
Kontaktdaten:

Re: PB 6.20 - Bug bei GOSUB -> Absturz - [WIN11] [Linux]

Beitrag von jacdelad »

Unabhängig von dem was hier passiert oder nicht...ich würde dir von der Verwendung von Gosub und Foto abraten. Es gibt keinen Grund die zu benutzen, Prozeduren sind dafür besser geeignet. Wenn es nach mir ginge, könnten Gosub/Foto komplett aus PureBasic entfernt werden.
Guten Morgen, das ist ein schöner Tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Benutzeravatar
mk-soft
Beiträge: 3844
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: PB 6.20 - Bug bei GOSUB -> Absturz - [WIN11] [Linux]

Beitrag von mk-soft »

Fehler im Programm ...

Code: Alles auswählen

; Sprungmarke GOSUB 
; Anzeige: 5 Werte, danach Absturz
;
Gosub SUB_4
Gosub SUB_2
Gosub SUB_1
Gosub SUB_3

End ; <-----------------------------------
;
SUB_1:
Debug Str(1)
Return
;
SUB_2:
Debug Str(2)
Return
;
SUB_3:
Debug Str(3)
Return
;
SUB_4:
Debug Str(4)
Return
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:

Re: PB 6.20 - Bug bei GOSUB -> Absturz - [WIN11] [Linux]

Beitrag von HeX0R »

mk-soft hat geschrieben: 19.02.2025 21:40 Fehler im Programm ...
Richtig, und das ist auch ein sehr schönes Beispiel, weshalb Gosub eben eher nicht verwendet werden sollte.
Goto bzw. Foto ( :lol: ) kann in Ausnahmefällen aber durchaus Sinn machen.
Benutzeravatar
PIC18F2550
Beiträge: 104
Registriert: 29.04.2024 09:10
Computerausstattung: Server HP Proliant G7
PC AMD FX(tm)-9590, 64Gb Ram, 2x 2TB Raid5 SAS

Re: PB 6.20 - Bug bei GOSUB -> Absturz - [WIN11] [Linux]

Beitrag von PIC18F2550 »

Gosub ist schneller und spart Ressourcen.
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
H.Brill
Beiträge: 496
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Re: PB 6.20 - Bug bei GOSUB -> Absturz - [WIN11] [Linux]

Beitrag von H.Brill »

GOSUB und GOTO waren gedacht, es Einsteigern mit GW-Basic - Hintergrund den Einstieg etwas zu erleichtern und sollte
bei fortgeschrittenen Kenntnissen von PB nicht mehr angewendet werden. Gibt es auch bei (X)Profan und dort wird ebenfalls
bei besserer Kenntnis davon abgeraten.

Ob es bei PB schneller und ressourcenfreundlicher ist, weiß ich nicht. Bei (X)Profan jedenfalls sind die Progs (Prozeduren)
schneller und daher zu bevorzugen. Kann bei PB aber anders sein. Ich könnte mir denken, daß PB, das damals in ASM übersetzt hatte,
wegen den Sprungmarken schneller ist. In normalem ASM gab es ja sonst nichts anderes für Schleifen bzw. Unterprogramme.
PB 6.10
Benutzeravatar
jacdelad
Beiträge: 404
Registriert: 03.02.2021 13:39
Wohnort: Riesa
Kontaktdaten:

Re: PB 6.20 - Bug bei GOSUB -> Absturz - [WIN11] [Linux]

Beitrag von jacdelad »

Auch wenn es schneller ist...genau dieser Thread zeigt, warum man es nicht nutzen sollte. Es ist unübersichtlich.
Guten Morgen, das ist ein schöner Tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Benutzeravatar
H.Brill
Beiträge: 496
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Re: PB 6.20 - Bug bei GOSUB -> Absturz - [WIN11] [Linux]

Beitrag von H.Brill »

jacdelad hat geschrieben: 22.02.2025 14:10 Auch wenn es schneller ist...genau dieser Thread zeigt, warum man es nicht nutzen sollte. Es ist unübersichtlich.
Das stimmt. Damals nannte man sowas Spaghetti-Code . Das ging mir schon damals auf den Geist :evil:
PB 6.10
Benutzeravatar
PIC18F2550
Beiträge: 104
Registriert: 29.04.2024 09:10
Computerausstattung: Server HP Proliant G7
PC AMD FX(tm)-9590, 64Gb Ram, 2x 2TB Raid5 SAS

Re: PB 6.20 - Bug bei GOSUB -> Absturz - [WIN11] [Linux]

Beitrag von PIC18F2550 »

Gosub ist wie eine Funktion nur das die Variablen nicht gekapselt sind.

An das End muste ich mich auch erst gewöhnen.
Mittlerweile setze ich am anfang einen Goto START und überspringe alle Subroutinen die ich am Anfang hineinstelle.

Ich mag diese "C"aspersprache nicht und finde es einfach traurig wie Basic langsam zu C umgestaltet wird.
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: PB 6.20 - Bug bei GOSUB -> Absturz - [WIN11] [Linux]

Beitrag von STARGÅTE »

PIC18F2550 hat geschrieben: 22.02.2025 15:31 Gosub ist wie eine Funktion nur das die Variablen nicht gekapselt sind.
... und das Gosub keine Rückgabewert hat.
... und das man keine Argumente übergeben kann.
... und keine Rekursion möglich ist.
... und das man nicht aus Select (und Schleifen?) zurückspringen darf.
Aber ja, ansonsten ist es eigentlich fast das gleiche.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten