Crash: Thread + MsgRequester + Threadsafe Executable

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Crash: Thread + MsgRequester + Threadsafe Executable

Beitrag von Lukaso »

Hallo,

bin gerade über etwas gestolpert, mein aktuelles Großprojekt stürzt bei einem MessageRequester, der in einem Thread gelagert wird (um die Eventabarbeitung nicht zu unterbrechen), nach dem klicken auf "OK", ab.

Hab das ganze mal in Kurzform nachgebaut (eigentlich wollte ich ausschließen das es sich um einen PB-Bug handelt, was allerdings wohl doch der fall ist).

Stürzt allerdings nur bei aktivierter "Threadsafe Executable" Option ab, wenn nicht Threadsafe ist geht es ohne Probleme allerdings hab ich dann das Problem was ich eigentlich mit dem Threadsafe dingens umgehen wollte.

Code: Alles auswählen

Global sTest.s = "TEST"

Procedure ThreadTest()
  MessageRequester(sTest, sTest)
EndProcedure

CreateThread(@ThreadTest(), 0)

Repeat : Delay(100) : ForEver
Probiert selbst ;)
Line: 5 - Illegal instruction. (executing binary data?)
Verwendet: PB4.10 Final
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

In diesem Fall sitzt der Bug vorm Bildschirm. Die Procedure muss
einen Parameter besitzen. Schliesslich uebergibst du ja auch einen.
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Beitrag von Lukaso »

aua, macht sinn ... ich dödel :?
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

LOL? In PB 4.20 BETA 4 läuft es wider erwarten, warum?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

AND51 hat geschrieben:LOL? In PB 4.20 BETA 4 läuft es wider erwarten, warum?
Das es läuft bedeutet nicht, das es nicht falsch ist. Ist also Schnuppe, das
es läuft, muß ja nicht bei anderen so sein.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

> Das es läuft bedeutet nicht, das es nicht falsch ist.
Doch! Eine Prozedur, die als Thread ausgeführt werden soll, muss einen Parameter haben, so steht es ja auch in der Hilfe.
Übrigens: Früher lief es "versehentlich" auch mit Strings, was seit 4.xx repariert wurde; dass es jetzt aber auch mit "gar nichts" läuft, finde ich amüsant.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Hast du ueberhaupt gelesen was Thomas geschrieben hat ?
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Ich habe es sogar zitiert!
Was ich mit meinem "Doch!" sagen wollte war: Dieser Code dürfte IMHO eigentlich nciht laufen, eben weil die Prozedur keinen Parameter hat. Aber das ist nur meine Meinung, ich habe PB nicht gemacht und kann da auch nicht reingucken, vielleicht hat man das ja auch mit Absicht so gemacht, wer weiß? Ich kann mich nur auf die Hilfe beziehen.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Man kann nicht pruefen ob die Procedure ein Parameter hat oder nicht.
Das es bei dir nicht in die Hose geht, spielt auch keine Rolle, frueher oder
spaeter wird es das.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

edel hat geschrieben:Man kann nicht pruefen ob die Procedure ein Parameter hat oder nicht.
PB prüft ja normalerweise recht zuverlässig, ob die Anzahl der Parameter
stimmt und gibt ggfs. ein "Incorrect number of parameters." aus

Warum das bei Threads anders ist, entzieht sich allerdings auch meiner Kenntnis.

Grüße ... Kiffi
a²+b²=mc²
Antworten