Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat

Anfängerfragen zum Programmieren mit PureBasic.
iwelx
Beiträge: 8
Registriert: 26.01.2022 18:38

Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat

Beitrag 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
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat

Beitrag 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?
Bild
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat

Beitrag 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.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
iwelx
Beiträge: 8
Registriert: 26.01.2022 18:38

Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat

Beitrag 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
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat

Beitrag 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)
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat

Beitrag von ccode_new »

Hinbekommen?
Funktioniert die Prozedurauslagerung?

Es wäre schön einen positiven Ausgangsbericht zu lesen.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
iwelx
Beiträge: 8
Registriert: 26.01.2022 18:38

Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat

Beitrag 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
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat

Beitrag von mk-soft »

Verwendest du Gdk funktionen?
Wenn ja sieht es eher nach falsche oder nicht geprüfte Pointers aus.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
iwelx
Beiträge: 8
Registriert: 26.01.2022 18:38

Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat

Beitrag 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
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Projekt- und Programmabsturz nach Benutzung auf *.pbi ausgelagerter Prozeduren im Compilat

Beitrag von ccode_new »

Ändere den Unterbau der grafische Benutzeroberfäche auf "gtk2", oder wenn möglich "qt".

(Subsytem)
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Antworten