Seite 1 von 2
Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat
Verfasst: 26.01.2022 18:56
von iwelx
Hallo,
PureBasic 5.73 unter LinuxMint 20.3 und PureBasic 5.72 unter Debian 10
Ich weiß nicht, ob das jetzt Betriebssystem speziefisch ist, ich verwende nur Linux. Folgendes Verhalten ist in beiden BS mit oder ohne Projekt dasselbe :
Aus einer *.pb habe ich Prozeduren in eine *.pbi ausgelagert. Die *.pbi ist mit XincludeFile “Dateiname.pbi“ in der *.pb eingebunden. Ich kann das Programm aus der IDE compilieren, starten und uneingeschränkt testen. Solange dabei keine auf die *.pbi ausgelagerte Prozedur aufgerufen wird, komme ich nach Schließen des Compilats auch wieder zur weiteren Bearbeitung in die IDE zurück. Wird jedoch beim Testen eine auf die *.pbi ausgelagerte Prozedur aufgerufen, stürzt PureBasic mit Beenden des Compilats ab. Die IDE wird geschlossen und ich muß PureBasic erneut aufrufen und alles wieder erneut öffnen um fortfahren zu können.
Was kann die Ursache sein ? (Falls Ihr weitere Infos benötigt, liefere ich diese gerne nach.)
Gruß iwelx
Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat
Verfasst: 26.01.2022 19:47
von NicTheQuick
Das ist merkwürdig. Ich nutze auch ausschließlich Linux (Ubuntu 21.10), aber das ist mir noch nicht passiert. Kannst du die IDE mal aus dem Terminal heraus starten? Kommen da irgendwelche Fehlermeldungen?
Insgesamt ergibt es allerdings keinen Sinn. Der Compiler ist unabhängig von der IDE und inkludiert die pbi-Datei so oder so, egal ob die Procedure darin aufgerufen wird oder nicht. Der Compiler muss die Datei ja trotzdem analysieren.
Kannst du das ganze in kleinerer Form nachstellen, sodass man es mal versuchen kann nachzuvollziehen?
Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat
Verfasst: 26.01.2022 20:16
von ccode_new
An welcher Stelle bindest du *.pbi in deine Hauptdatei ein?
Kann es sein das die Prozeduren in deiner *pbi bestimmte Dinge aus deiner *.pb Datei benötigen, die es aber nicht in der *.pbi gibt.
Verwendest du Module in deiner *.pbi?
Ich verwende auch in Hauptdateien (*.pb) teilweise bis zu 6 verschiedene *.pbi Dateien ohne Probleme unter Mac, Linux, Windows.
Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat
Verfasst: 26.01.2022 21:13
von iwelx
Danke Euch für die schnelle Antwort.
@NicTheQuick werde mal ein kleines Testprogramm dafür erstellen.
@ccode_new
1.) XInclude... steht in der Zeile vor den (derzeit nur auskommentierten) Prozeduren, die in die *.pbi kopiert wurden.
2.) Welche "Dinge" meinst Du ? diese Prozeduren verwenden derzeit nur globale und lokale Variablen.
3.) keine Module
Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat
Verfasst: 26.01.2022 21:24
von ccode_new
@iwelx
Läuft die PureBasic-IDE den überhaupt ordentlich Stabil auf deinem Rechner mit Linux.
Kannst du mal testen ob die IDE abstürzt wenn du einfach einmal gaaanz viele verschieden PureBasic-Dateien in der IDE öffnest.
Schreibe alle deine ausgelagerten Funktionen einmal mit "Declare" an den Anfang deiner *pb-Datei.
Welche Debugger-Einstellung verwendest du? (Integriert / Eigenständig /nur Konsole)
Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat
Verfasst: 27.01.2022 19:07
von ccode_new
Hinbekommen?
Funktioniert die Prozedurauslagerung?
Es wäre schön einen positiven Ausgangsbericht zu lesen.
Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat
Verfasst: 27.01.2022 23:44
von iwelx
Hallo,
hier eine Info zum aktuellen Stand :
Durch sukzessive Auslagerung der einzelnen Prozeduren in eine *pbi konnte ich das Problem auf wenige Prozeduren eingrenzen. Es handelt sich dabei durchweg um Prozeduren, in denen ich mit Checkboxen und Options-Gadgets Einstellungen vornehme. Eine dieser Prozeduren habe ich in ein kleines Testprogramm kopiert und konnte damit auch die Abstürze reproduzieren. Schließlich konnte ich auch die Codebereiche ermitteln, die die Abstürze auslösen.
Es scheint , als ob Checkboxen und Options-Gadgets mehr Platz benötigen, als ich ihnen eingeräumt habe. Damit überschneiden sie sich, was möglicherweise zu diesen Abstürzen führt. Ich werde das für eine dieser Prozeduren nun mit dem Formdesigner anordnen und testen. Solche Abstürze hatte ich auch früher schon, aber selten. Warum sie regelmäßig auftreten, wenn ich diese Prozeduren in eine *.pbi auslagere ist mir noch nicht klar.
Bei allen diesen Prozeduren finden sich im Quellcode orangefarbene und mit einem Ausrufezeichen nach der Zeilennummer markierte Zeilen. Zur Bedeutung dieser Markierung (Warnung ?) habe ich bislang nichts gefunden.
Wenn die IDE nicht abgeschossen wird, finden sich im Fehlerbericht viele Warnungen der Art :
Code: Alles auswählen
[WARNING] MeinProgramm.pb (Zeile: 3363)
[WARNING] GdkPixbuf (DEBUG): gdk_pixbuf_from_pixdata() called on:
[WARNING] MeinProgramm.pb (Zeile: 3363)
[WARNING] GdkPixbuf (DEBUG): Encoding raw
[WARNING] MeinProgramm.pb (Zeile: 3363)
[WARNING] GdkPixbuf (DEBUG): Dimensions: 14 x 14
[WARNING] MeinProgramm.pb (Zeile: 3363)
[WARNING] GdkPixbuf (DEBUG): Rowstride: 56, Length: 808
[WARNING] MeinProgramm.pb (Zeile: 3363)
[WARNING] GdkPixbuf (DEBUG): Copy pixels == false
Die hier angegebenen Zeilennummern stimmen nicht mit den orange markierten Quellcodezeilen überein, z.T. handelt es sich sogar um Leerzeilen. Eine Erklärung für die hier ausgegebenen Texte habe ich auch noch nicht gefunden.
Wo finde ich Info‘s zu diesen Warnungen ?
Gruß, iwelx
Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat
Verfasst: 28.01.2022 01:05
von mk-soft
Verwendest du Gdk funktionen?
Wenn ja sieht es eher nach falsche oder nicht geprüfte Pointers aus.
Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat
Verfasst: 28.01.2022 01:16
von iwelx
@mk-soft
Verwende hier weder gtk-Funktionen noch pointer. In den relevanten Codezeilen werden nur Gategets eingerichtet. Bei Auskommentieren dieser Zeilen ist der Fehler weg. Das scheint mir eindeutig zu sein.
Gruß, iwelx
Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat
Verfasst: 28.01.2022 06:35
von ccode_new
Ändere den Unterbau der grafische Benutzeroberfäche auf "gtk2", oder wenn möglich "qt".
(Subsytem)