Einfaches mini Programm bringt GANZ Linux zum abstürzen...

Für Fragen rund um die Ide und zum Debugger
alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Einfaches mini Programm bringt GANZ Linux zum abstürzen...

Beitrag von alexander »

Hi,

bei einer kleinen Variation vom multithreat example wird ganz Linux inclusive Lazarus und X-Server zum abstürzen gebracht.
Das ist irgendwie unkomfortabel... denn eigentlich sollte Lazarus ja das Programm überwachen und merken, dass jetzt das Programm in eine endlos schleife geraten ist und daraufhin eine Fehlermeldung ausgeben.

Es wäre schön, wenn die Leute die tiefer in der Materie drin sind, es an die Prorammierer weiter geben und die den Bug beheben.

Das Programm inclusive aller Dateien ist im Anhang.

Die wichtige Procedure zum überblick aber hier:

Code: Alles auswählen

procedure TMyThread.Execute;
var
  newStatus : string;
  i:Integer;
begin
  i:=0;
  fStatusText := 'TMyThread Starting...';
  Synchronize(@Showstatus);
  fStatusText := 'TMyThread Running...';
  while (not Terminated) and (not stop) do
    begin
//      inc(i);      // wenn man das entkommentiert stüzt ganz Linux ab
      NewStatus:=IntToStr(i);
      if NewStatus <> fStatusText then
        begin
          fStatusText := newStatus;
          Synchronize(@Showstatus);
        end;
    end;
end;
Gruß Alexander
Dateianhänge
laztemp.tar.gz
(42.21 KiB) 88-mal heruntergeladen

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Fehler ohne Ende in deiner Diagnose.

Es ist gar nichts abgestürzt und schon gar nicht ganz Linux.
Dein X Server wartet schlichtweg auf die Benutzereingabe. Und du kannst ihn jederzeit killen.

Hättest du dir entsprechende Literatur (Wiki) durchgelesen hättest du gewusst was genau passiert ist und wie du das vermeiden kannst.
X ist nicht multithread Fähig. Wie man trotsdem in Threads debuggen kann steht im lazarus Wiki.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

Christian hat geschrieben:Und du kannst ihn jederzeit killen.
Wie? STRG+ALT+Fx hat nicht geklappt, selbst STRG+ALT+Backspace hat nicht geklappt...
Christian hat geschrieben:Wie man trotsdem in Threads debuggen kann steht im lazarus Wiki.
Ehmmmm.... wo.. ich finde es nicht..

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Einfach nach Thread im Lazarus Wiki suchen ...

http://wiki.lazarus.freepascal.org/Mult ... utorial/de
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

ahhh ok... ich habe nicht wiet genug gelsen...
danke.
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

hmm ganz kapieren tue ich es trotzdem nicht....
wenn ich X :1 & in z.B. die 5. Konsole (F5) eingebe dann bekomme ich einen neuen X Server. Aber wie soll ich denn jetzt gnome-session --display=:1 & eingeben, da im XServer noch nichts ist, und die 5. Konsole den XServer ja am leben erhält......


PS Der X Server ist schon abgestürzt:
Probleme mit dem X-Server auf: Er stürzt ab.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

die 5. Konsole ist nur ne Console die hält den X Server nicht am leben das & sollte dafür sorgen das du auf die Konsole zurückkehrst
die 2. Gnome Session kannst du genau so in jedem terminal oder Konsole starten. Wenn du nur ein fenster hast brauchst du die nicht mal das wird dann halt ohne Borders in der Mitte des 2. X Servers angezeigt.

Ein VNC Server macht sich übrigends besser als ein X Server.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

ähhh wie jetzt?
Kannst du mir vielleicht idiotensicher sagen, wie ich was wo eingeben soll?
Denn egal wie, wo oder mit welchen Rechten ich es versuche es klappt nicht....
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Es steht doch schön schrittweise im Wiki, wo hakts denn ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

hmmmm.. also:
es steht
Starten Sie eine neue X-Instanz. Dies können Sie über die Konsole mit folgendem Befehl erreichen:

X :1 &
in der Konsole inherhalb des XServers kommt folgende Meldung...
alexander@alexander-desktop:~$ X :1 &
[1] 12027
alexander@alexander-desktop:~$ X: user not authorized to run the X server, aborting.
Wenn ich es z.B. in der Konsole (mit Fx) mache, dann startet er einen XServer und der ist gefüllt mit schwarz weißen Punkten.
Schluss aus.
Wenn ich jetzt zur konsole zurückgehe dann enter drücke, dann kann ich wieder einen Befehl eingeben. Ok. Aber wenn ich jetzt die gnome sesssion starte, dann meldet er so etwas wie Signal 11, Server aborted, und der XServer ist gekilled.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

steht doch alles da, du hast als normaler benutzer kein recht nen x server zu starten. Also nimmst du

sudo X :1 &

das da schwarze und weisse punkte sind ist normal.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

alexander@alexander-desktop:~$ sudo X :1 &
[1] 10049
alexander@alexander-desktop:~$ [sudo] password for alexander:
meinpassword

[1]+ Stopped sudo X :1
bash: meinpassword: command not found

[1]+ Stopped sudo X :1
alexander@alexander-desktop:~$

Soviel dazu... (meinpasword ist natürlich nicht mein passowrod)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

gut, du willst anscheinend mit macht nicht mal schaun wie man in einem terminal unter linux befehle eingeben kann.

sudo X :1

oder

sudo
<< gib nach aufforderung dein passwort ein und dann

sudo X :1 &
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

Häää, bitte was?! Ich habe genau das gemacht und oben ist auch die ausgabe dazu.
Dann erkläre mit doch bitte die Ausgabe, und sag nicht immer wieder das gleiche....

EDIT: Falls die die ausgabe falsch ließt... ich habe NUR sudo X :1 & eingegeben... der rest kam.
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Schon klar.
Hast du nun mal die Befehle aus meinem letzten post genommen ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten