IDE stürzt ab

Anfängerfragen zum Programmieren mit PureBasic.
sfbeetle
Beiträge: 5
Registriert: 19.08.2016 14:31

IDE stürzt ab

Beitrag von sfbeetle »

Hallo Community,
ich habe als absoluter Anfänger als ersten Versuch eine GUI erstellt auf Basis einer You-Tube Anleitung. Syntaxcontrolle läuft ohne Fehler durch. Wenn ich den Quellcode ohne Debugger compilieren und ausführen lasse erscheint die GUI, aber die Buttons erzeugen kein Debug-Ausgabefeld, wie als Dummy erwünscht.
Wenn ich den Code jedoch mit eingeschalteten Debugger compilieren lasse, stürzt das komplette PureBasic mit der Meldung "Das Executable wurde unerwartet beendet" ab . Nach Neustart erscheint eine Meldung "Eine vorherige Sitzung scheint nicht ordnungsgemäss beendet worden zu sein" - Richtig.
Systemdaten. Opensuse LEAP 42.1 aktueller Stand. free version of PureBasic 5.50 (Linux - x64).


Formulardatei, erstellt mit Designer:

Code: Alles auswählen

;
; This code is automatically generated by the FormDesigner.
; Manual modification is possible to adjust existing commands, but anything else will be dropped when the code is compiled.
; Event procedures needs to be put in another source file.
;

Enumeration FormWindow
  #Hauptfenster
EndEnumeration

Enumeration FormGadget
  #Bild_laden
  #Bild_scannen
  #Bild_teilen
  #OCR_starten
EndEnumeration

Enumeration FormImage
  #Img_Hauptfenster_0
  #Img_Hauptfenster_1
  #Img_Hauptfenster_2
  #Img_Hauptfenster_3
EndEnumeration

UsePNGImageDecoder()

LoadImage(#Img_Hauptfenster_0,"/home/horst/PB Project/image.png")
LoadImage(#Img_Hauptfenster_1,"/home/horst/PB Project/scanner.png")
LoadImage(#Img_Hauptfenster_2,"/home/horst/PB Project/teilen.png")
LoadImage(#Img_Hauptfenster_3,"/home/horst/PB Project/run.png")

Enumeration FormFont
  #Font_Hauptfenster_0
EndEnumeration

LoadFont(#Font_Hauptfenster_0,"Sans", 12, #PB_Font_Bold)

Declare Bild_teilen(EventType)
Declare Bild_laden(EventType)
Declare Bild_scannen(EventType)
Declare OCR_starten(EventType)

Procedure OpenHauptfenster(x = 0, y = 0, width = 1290, height = 825)
  OpenWindow(#Hauptfenster, x, y, width, height, "                          kOCR - Hilfe", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_WindowCentered)
  ButtonImageGadget(#Bild_laden, 40, 40, 80, 80, ImageID(#Img_Hauptfenster_0), #PB_Button_Toggle)
  GadgetToolTip(#Bild_laden, "Bild von FP laden")
  SetGadgetFont(#Bild_laden, FontID(#Font_Hauptfenster_0))
  ButtonImageGadget(#Bild_scannen, 130, 40, 80, 80, ImageID(#Img_Hauptfenster_1), #PB_Button_Toggle)
  GadgetToolTip(#Bild_scannen, "Scannt Bild und speichert es temporär ab")
  ButtonImageGadget(#Bild_teilen, 220, 40, 80, 80, ImageID(#Img_Hauptfenster_2), #PB_Button_Toggle)
  GadgetToolTip(#Bild_teilen, "Ermöglicht das Aufteilen in Textrahmen")
  ButtonImageGadget(#OCR_starten, 310, 40, 80, 80, ImageID(#Img_Hauptfenster_3), #PB_Button_Toggle)
  GadgetToolTip(#OCR_starten, "Startet den OCR Vorgang und speichert ODT")
EndProcedure

Procedure Hauptfenster_Events(event)
  Select event
    Case #PB_Event_CloseWindow
      ProcedureReturn #False

    Case #PB_Event_Menu
      Select EventMenu()
      EndSelect

    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Bild_laden
          Bild_laden(EventType())          
        Case #Bild_scannen
          Bild_scannen(EventType())          
        Case #Bild_teilen
          Bild_teilen(EventType())          
        Case #OCR_starten
          OCR_starten(EventType())          
      EndSelect
  EndSelect
  ProcedureReturn #True
EndProcedure

pbi Datei wie in Anleitung:

Code: Alles auswählen

  
OpenHauptfenster()         ;Öffnen des Hauptfensters

 Repeat                 ;starten der Auswertungsschleife
   ProgrammAblauf = Hauptfenster_Events(WaitWindowEvent())  
 Until  ProgrammAblauf=#False
; Until  ProgrammAblauf=#True
 End
Hauptdatei wie in Anleitung:

Code: Alles auswählen

XIncludeFile "Hauptformular.pbf" ;  Einbinden des Formulars
XIncludeFile "Hauptformular.pbi" ;  Einbinden der Auswertungen

Procedure Bild_laden(EventType)
Debug "1"
EndProcedure
  
Procedure Bild_scannen(EventType)
Debug "2"
EndProcedure

Procedure Bild_teilen(EventType)
Debug "3"
EndProcedure
  
Procedure OCR_starten(EventType)
Debug "4"
EndProcedure
  

Link zum Anleitungsvideo: https://www.youtube.com/watch?v=d3v6pZa9WCM

3 Fragen. 1.) Warum öffnet das Debug-Ausgabefenster nicht?
2.) Wieso der Absturz mit Debugger
3.) Warum habe ich in der IDE keinen Zugriff auf den unteren Teil des Debugger Ausklappmenues (Variablenliste, Programmanalyse etc.)

Ich hoffe jemand kann mir einige Tipps geben.


sfbeetle
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: IDE stürtzt ab

Beitrag von STARGÅTE »

Hallo sfbeetle,
  1. "Warum öffnet das Debug-Ausgabefenster nicht?"
    Wenn du deinen Code ohne Debugger kompilierst, wird keine der Debugger-Funktionen mit kompiliert.
    Das bedeutet, dass das Debug-Ausgabefenster garnicht mit hinein kompiliert wird und ganze Zeilen wie:

    Code: Alles auswählen

    Debug "1"
    komplett fehlen. Insbesondere musst du dann aufpassen, dass du nirgendwo wichtige Ladebefehle wie:

    Code: Alles auswählen

    Debug LoadImage()
    mit einem Debug versiehst, weil diese dann nicht mitkompiliert werden, somit das Image auch nicht geladen wird!
  2. "Wieso der Absturz mit Debugger"
    Schwer zu sagen, ohne einen ausführbaren Code zu haben. Evtl mal dem vorherigen Hinweis durchgehen.
  3. "Warum habe ich in der IDE keinen Zugriff auf den unteren Teil des Debugger Ausklappmenues (Variablenliste, Programmanalyse etc.)"
    Diese Menüeinträge sind nur aktiv wenn das Programm mit Debugger läuft, also wenn diese Sachen wie Variablen auch nur ausgelesen werden können. Davor oder nach einem Absturz exsitiert die Anwendung ja nicht mehr, somit kann auch nichts mehr Angesehen werden.
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
sfbeetle
Beiträge: 5
Registriert: 19.08.2016 14:31

Re: IDE stürzt ab

Beitrag von sfbeetle »

Hallo Stargate,
Danke für die schnelle Reaktion

Punkt1.) soweit klar beantwortet.
Punkt2.) Aufgrund deiner Antwort habe ich gestern die Debug-Befehle alle entfernt, da diese ja den Unterschied im compilierten Code ( mit und ohne Debugger) ausgemacht haben. Aber auch ohne Debug-Befehle stürzt die IDE regelmässig bei eingeschalteten Debugger ab.
Zum testen wollte ich dann die Kompilierung schrittweise durchführen und habe entsprechende Haltepunktze gesetzt. Diese interessieren den Debugger aber nicht im geringsten. Er läuft durch und stürzt ab.

Punkt3.) Noch eine Nachfrage. Muss ich denn nicht vor Beginn des kompilierens einschalten welche Hilfsprogramme mitlaufen sollen.? Während des Vorgangs ist die Zeit doch viel zu kurz?

Vielleicht könnte jemand den Code kurz kopieren und versuchen zu kompilieren, da ich den Verdacht habe der Fehler liegt meiner PureBasic Installation im Zusammenspiel mit OpenSuse.

Vielen Dank vorab

sfbeetle
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

Re: IDE stürzt ab

Beitrag von ts-soft »

sfbeetle hat geschrieben:Vielleicht könnte jemand den Code kurz kopieren und versuchen zu kompilieren, da ich den Verdacht habe der Fehler liegt meiner PureBasic Installation im Zusammenspiel mit OpenSuse.
Das ist naheliegend, da IMHO OpenSUSE wohl öfters Probleme macht. Wenn möglich vielleicht eine andere
Distribution ausprobieren, und wenn es in einer Virtuellen Maschine ist.

Die Debug-Befehle entfernen ist natürlich nicht Empfehlenswert, weil was soll der Debugger den Debuggen :mrgreen:
Debug-Befehle werden nur beim Debuggen, z.B. beim Starten mit F5, ausgeführt. Hierbei ist nur zu beachten,
das der Befehl, der dem Debug folgt, in einer Exe ignoriert wird (welcher Benutzer unserer Software möchte sich
diese auch wirklich angucken :mrgreen: .

Es sollte auch die Installation, sowie die abhängigen Bibliotheken (devs in checkinstall.sh) überprüft werden.

Bevor man dann den FormDesigner testet, erst einmal die einfachen Beispiele der Hilfe testen!

Gruß
Thomas
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
sfbeetle
Beiträge: 5
Registriert: 19.08.2016 14:31

Re: IDE stürzt ab

Beitrag von sfbeetle »

Bin jetzt einen Schritt weiter.
Wenn ich PureBasic als Root oder über kdesu starte wird mein Programm einwandfrei kompiliert und auch die Test Debug-Ausgaben funktionieren einwandfrei.
Daraufhin habe ich pbcompiler, fasm und alles unter/usr/share(purebasic von root/root auf horst/users geändert.
Jetzt stürzt nicht mehr die gesamte IDE ab, aber das Executable wird immer noch unerwartet beendet.
Fehlerhinweis in der Shell:
[Fatal Debugger Error] Broken communication pipe
.



Die Version von PB wurde von FreeTrial auf Vollversion geändert

sfbeetle
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

Re: IDE stürzt ab

Beitrag von ts-soft »

Warum nicht lt. Anleitung ins Homeverzeichnis installiert? Da spart man sich eine menge Ärger mit Rechten und
Root wird auch nicht benötigt! :mrgreen:
PureBasic wird im Normalfalle immer als User, egal ob Linux, MacOS oder Windows, gestartet. Erweiterte Rechte
werden, wenn sie denn gebraucht werden, vom Programm angefordert.
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
sfbeetle
Beiträge: 5
Registriert: 19.08.2016 14:31

Re: IDE stürzt ab

Beitrag von sfbeetle »

Hallo TS-Soft

Ich höre ja auf die Profis und habe deshalb eben Neu ins home-Verzeichnis installiert mit Anpassung der bashrc (Neustart)
Leider interessiert das den Debugger nicht im geringsten - weiterhin der gleiche Fehler.
[Fatal Debugger Error] Broken communication pipe.Speicherzugriffsfehler
.
Folgender Path:
/
home/horst/purebasic/compilers:
/home/horst/purebasic/compilers:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/share:/usr/share/purebasic/compilers:/usr/share:/usr/share/purebasic/compilers
Ist das denn richtig , dass das Verzeichnis
home/horst/purebasic/compilers:

2x auftaucht?

Sollte man nicht eine Installationsanleitung die anscheinend häufig Probleme bereitet komplett weglassen und nicht nur als "Not recommented" bezeichnen?

sfbeetle
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

Re: IDE stürzt ab

Beitrag von ts-soft »

Wenn die BASHRC angepaßt wurde, ist kein weiterer Pfad irgendwo einzutragen! Unter *ubuntu u. ä. wird der
Pfad sofort übernommen, bei einigen Distributionen ist aber ein einmaliges Logout und Login erforderlich.

Alles was bereits vorher geschehen sein sollte, ist zu entfernen. Die Prioritäten der anders eingetragenen Pfade
haben vorrang, also weg damit!

Also, purebasic.tgz oder wie auch immer, unter Linux entpacken und ins Homeverzeichnis kopieren. Damit
funktioniert dann schon mal die IDE. Die BASHRC anpassen, also die beiden Pfade am ende anfügen und
evtl. Abmelden und Anmelden, damit kannste die IDE und den Compiler von überall aus aufrufen.

Jetzt noch die ganzen DEVS installieren, hab keine Ahnung wie die jetzt unter Susi :) genau heissen und
damit biste fast fertig.

Jetzt kommen noch nicht so wichtige Sachen, wie Menüeintrag, Vernüpfen usw. die ich hier nicht erläutern werde.
Dafür ist ja auch ein script im PureBasic Ordner (von Mir :mrgreen: ), der das erledigt.

Wie Du vielleicht gerade merkst, meine Angaben sind etwas ungenau, da ich gerade unter Windows unterwegs
bin, kann also nicht nachschauen.

Wie Du jetzt vielleicht bemerkt hast, dauert so eine Installation ins Homeverzeichnis, komplett vielleicht max.
5 Minuten. Aber bitte vorher alles entfernen, was Du dort versucht hast!

Gruß
Thomas

PS: Bin zertifizierter SuSE Enterprise Administrator, hab aber dafür kein SuSE oder Novell Distribution gebraucht :mrgreen:
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
sfbeetle
Beiträge: 5
Registriert: 19.08.2016 14:31

Re: IDE stürzt ab

Beitrag von sfbeetle »

Hallo TS-Soft,

sollte mein Einleitungssatz im vorigen Beitrag falsch rübergekommen sein: Er war keinesfall ironisch oder gar sarkastisch gemeint. Ich freue mich wenn mir jemand hilft, der im Gegensatz zur mir nicht nur Halbwissen besitzt und befolge dann auch seine Anweisungen.
Ich habe jetzt alle früheren Änderungen beseitigt, was aber auch keine Änderung gebracht hat. Jetzt kein Unterschied mehr zwischen Root und User.
Mal wird das "Executable unerwartet beendet", mal schmiert die gesamte IDE ab.
Eine Installation unter Lubunto funktioniert bei gleicher Installationsart sofort einwandfrei. Werde also jetzt erstmal Lubunto verwenden und vielleicht mit LEAP 42.2
im Herbst nochmal testen.

Danke für die Hilfen

sfbeetle
Antworten