Lazarus-Projekt bringt auf anderem PC Fehler
-
- Lazarusforum e. V.
- Beiträge: 238
- Registriert: Di 5. Feb 2008, 15:32
- OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
Lazarus-Projekt bringt auf anderem PC Fehler
Hallo,
Ich brauche mal einen Tip zur Fehlersuche.
Ich habe auf meinem PC (XP-Professional SP1) ein lazarus-Projekt erstellt (hat ca. 10 Formulare).
Nun wollte ich auf einem anderen PC weiterentwickeln.
Hab das Projektverzeichnis gezippt und auf dem zweiten PC (XP-Professional SP2) entpackt.
Auf dem zweiten öffne ich das Projekt , starte es (F9) und bekomme folgende Fehler:
Ein Fenster mit
Titel: 'Error'
Text: Project raised exception class 'External: SIGILL'
Ein zweites Fenster (dieses kommt zwei mal):
Titel 'Ausführung angehalten'
Text:
Adresse: $00265C1E
Prozedur: ??
Datei:
(TODO Assembler-Ansicht an dieser Stelle
Im Fenster Nachrichten steht:
Projekt "rundenzaehler" erfolgreich gebaut.
Man kann nur OK klicken und dann über Projekt - Halt das ganze stoppen.
Auf beiden PCs ist die Selbe Lazarus-version (09.24) drauf.
Wie würdet ihr da vorgehen, um den Fehler zu finden?
Gruss
Eberhard
Ich brauche mal einen Tip zur Fehlersuche.
Ich habe auf meinem PC (XP-Professional SP1) ein lazarus-Projekt erstellt (hat ca. 10 Formulare).
Nun wollte ich auf einem anderen PC weiterentwickeln.
Hab das Projektverzeichnis gezippt und auf dem zweiten PC (XP-Professional SP2) entpackt.
Auf dem zweiten öffne ich das Projekt , starte es (F9) und bekomme folgende Fehler:
Ein Fenster mit
Titel: 'Error'
Text: Project raised exception class 'External: SIGILL'
Ein zweites Fenster (dieses kommt zwei mal):
Titel 'Ausführung angehalten'
Text:
Adresse: $00265C1E
Prozedur: ??
Datei:
(TODO Assembler-Ansicht an dieser Stelle
Im Fenster Nachrichten steht:
Projekt "rundenzaehler" erfolgreich gebaut.
Man kann nur OK klicken und dann über Projekt - Halt das ganze stoppen.
Auf beiden PCs ist die Selbe Lazarus-version (09.24) drauf.
Wie würdet ihr da vorgehen, um den Fehler zu finden?
Gruss
Eberhard
Re: Lazarus-Projekt bringt auf anderem PC Fehler
Debugger einschalten und Aufrufstack anschauen.
-
- Beiträge: 957
- Registriert: Mo 11. Sep 2006, 22:56
-
- Lazarusforum e. V.
- Beiträge: 238
- Registriert: Di 5. Feb 2008, 15:32
- OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
Hallo,
Ich hab es auch mit Projekt veröffentlichen versucht, der Effekt ist derselbe.
Über Ansicht - Debuggerfenster - habe ich Debuggerausgaben und Aufrufstack eingeblendet.
Im Fenster Call Stack
kommt eine unendliche Liste der Form(ohne die Unterstriche):
Source Line Function
______ 0 ___ ??
______ 0 ___ ??
Das Fenster 'Debug Output'
habe ich verglichen von Computer1 (da tuts) und Computer2 (da tuts nicht)
Die erste abweichende Ausgabe bei Computer2 ist:
'stopped,reason="signal-received",signal-name="SIGILL,signal-meanings="Illegal
instruction",thread-id="1",frame={addr="0x00265c1e",func="??",args=[]}
dann gehts weiter mit
stack-info depth
done ...
dann kommen diese beiden ausgaben im Wechsel immer weiter:
stack-list-arguments 1 0 0
done ...
stack-list-frames 4 4
done...
Habt ihr noch ne Idee, was ich weiter tun könnte?
Gruß
Eberhard
Ich hab es auch mit Projekt veröffentlichen versucht, der Effekt ist derselbe.
Über Ansicht - Debuggerfenster - habe ich Debuggerausgaben und Aufrufstack eingeblendet.
Im Fenster Call Stack
kommt eine unendliche Liste der Form(ohne die Unterstriche):
Source Line Function
______ 0 ___ ??
______ 0 ___ ??
Das Fenster 'Debug Output'
habe ich verglichen von Computer1 (da tuts) und Computer2 (da tuts nicht)
Die erste abweichende Ausgabe bei Computer2 ist:
'stopped,reason="signal-received",signal-name="SIGILL,signal-meanings="Illegal
instruction",thread-id="1",frame={addr="0x00265c1e",func="??",args=[]}
dann gehts weiter mit
stack-info depth
done ...
dann kommen diese beiden ausgaben im Wechsel immer weiter:
stack-list-arguments 1 0 0
done ...
stack-list-frames 4 4
done...
Habt ihr noch ne Idee, was ich weiter tun könnte?
Gruß
Eberhard
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Demoprojekte aus dem Lazarusverzeichnis kompilieren + laufen lassen geht ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Lazarusforum e. V.
- Beiträge: 238
- Registriert: Di 5. Feb 2008, 15:32
- OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
Beim Beispielprogramm imgviewer tritt der Fehler auch auf
Hallo,
Es sind beides XP-Professional 32-Bit Versionen.
Computer1 hat SP1 Computer2 hat SP2.
Ich habe ein paar Beispiele aus \lazarus\examples ausprobiert.
Einige gingen problemlos,
beim Beispiel imgviewer tritt der Fehler auch auf.
Allerdings nicht beim Start des Projekts, sondern wenn man auf das Icon mit der kamera klickt,
oder auf File - Open directory geht.
Es soll hier der Dialog zum Aussuchen eines Verzeichnisses aufgerufen werden:
if SelectDirectory(SSelectImageDir,'/',Dir) then
AddDir(Dir,False);
Komischerweise tritt der Fehler nicht immer auf - aber in ca. 90% der Fälle!
Die Fehlermeldung ist aber genauso wie bei meinem Projekt:
'External SIGILL' und dann 2 Fenster mit 'Ausführung angehalten'
Habt ihr noch ne Idee?
Gruss Eberhard
Es sind beides XP-Professional 32-Bit Versionen.
Computer1 hat SP1 Computer2 hat SP2.
Ich habe ein paar Beispiele aus \lazarus\examples ausprobiert.
Einige gingen problemlos,
beim Beispiel imgviewer tritt der Fehler auch auf.
Allerdings nicht beim Start des Projekts, sondern wenn man auf das Icon mit der kamera klickt,
oder auf File - Open directory geht.
Es soll hier der Dialog zum Aussuchen eines Verzeichnisses aufgerufen werden:
if SelectDirectory(SSelectImageDir,'/',Dir) then
AddDir(Dir,False);
Komischerweise tritt der Fehler nicht immer auf - aber in ca. 90% der Fälle!
Die Fehlermeldung ist aber genauso wie bei meinem Projekt:
'External SIGILL' und dann 2 Fenster mit 'Ausführung angehalten'
Habt ihr noch ne Idee?
Gruss Eberhard
-
- Beiträge: 61
- Registriert: Di 11. Sep 2007, 16:59
- OS, Lazarus, FPC: Ubuntu Maverick (L 0.9.28.2-10, FPC 2.4.0)
- CPU-Target: 32Bit
- Wohnort: Lage
- Kontaktdaten:
Re: Beim Beispielprogramm imgviewer tritt der Fehler auch au
Eb hat geschrieben:Habt ihr noch ne Idee?
Nur mal so eine Vermutung: Data Execution Prevention
Guckst du hier
Dets ...
-
- Lazarusforum e. V.
- Beiträge: 238
- Registriert: Di 5. Feb 2008, 15:32
- OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
Problem gelöst
Die Ursache ist gefunden.
Ich habe aus meinem Projekt nach und nach alle Komponenten rausgeworfen, bis es auf Computer 2 dann keinen Fehler mehr brachte.
Der Fehler liegt beim Zugriff auf den Parallelport.
Computer 2 hat nämlich keinen ...
Für den Zugriff auf den Parallelport verwende ich die inpout32.dll in dieser Form:
Ich habe nun eine globale Variable zeiterfassung eingefügt, die ich vor dem Zugriff abfrage und so funktioniert es jetzt:
Vielen Dank für eure Tips,
noch ein schönes Wochenende,
Eberhard
Ich habe aus meinem Projekt nach und nach alle Komponenten rausgeworfen, bis es auf Computer 2 dann keinen Fehler mehr brachte.
Der Fehler liegt beim Zugriff auf den Parallelport.
Computer 2 hat nämlich keinen ...
Für den Zugriff auf den Parallelport verwende ich die inpout32.dll in dieser Form:
Code: Alles auswählen
function Inp32(wAddr:integer):integer; stdcall; external 'inpout32.dll';
Ich habe nun eine globale Variable zeiterfassung eingefügt, die ich vor dem Zugriff abfrage und so funktioniert es jetzt:
Code: Alles auswählen
case zeiterfassung of
0 : wert := 0; // 'simulation'
1 : wert := inp32($379); // 'parallel'
2 : wert := 0; // 'seriell'
else wert := 0;
end;
Vielen Dank für eure Tips,
noch ein schönes Wochenende,
Eberhard
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: Problem gelöst
Eb hat geschrieben:Der Fehler liegt beim Zugriff auf den Parallelport.
Computer 2 hat nämlich keinen ...
Ui. Manchmal scheinen die Fehler ganz schön versteckt zu liegen...