Wie komme ich einer externen SIGFPE auf die Schliche?
Wie komme ich einer externen SIGFPE auf die Schliche?
Hallo
Ich experimentiere mit der Komponente HtmlViewer https://github.com/BerndGabriel/HtmlViewer für mein kleines Pop3 Vorschauprogramm.
Grundsätzlich funktioniert die Komponente für diesen Zweck erstaunlich gut.
Die fehlenden Bilder auf dem Screenshot sind nur, weil ich kein Nachladen von externen Inhalten zulasse.
Bilder im Mail-Attachment werden angezeigt.
Egal, die allgemeine Frage ist: Wie komme ich einer externen SIGFPE auf die Schliche?
Der Fehler entsteht erst beim Scrollen der Komponente.
Ich wüsste also nicht, wo ich einen BP setzen sollte.
Obwohl unter dem Debugger, wird mir nichts Brauchbares angezeigt. Auch der Stacktrace führt zu nichts.
Welche Möglichkeiten habe ich, um dem Fehler zu finden?
Danke.
Ich experimentiere mit der Komponente HtmlViewer https://github.com/BerndGabriel/HtmlViewer für mein kleines Pop3 Vorschauprogramm.
Grundsätzlich funktioniert die Komponente für diesen Zweck erstaunlich gut.
Die fehlenden Bilder auf dem Screenshot sind nur, weil ich kein Nachladen von externen Inhalten zulasse.
Bilder im Mail-Attachment werden angezeigt.
Egal, die allgemeine Frage ist: Wie komme ich einer externen SIGFPE auf die Schliche?
Der Fehler entsteht erst beim Scrollen der Komponente.
Ich wüsste also nicht, wo ich einen BP setzen sollte.
Obwohl unter dem Debugger, wird mir nichts Brauchbares angezeigt. Auch der Stacktrace führt zu nichts.
Welche Möglichkeiten habe ich, um dem Fehler zu finden?
Danke.
- Dateianhänge
-
- lazsigfpe.png (86.94 KiB) 1929 mal betrachtet
Re: Wie komme ich einer externen SIGFPE auf die Schliche?
Wenn ich zum Debuggen in Package-Units eintauchen muss, dann setze ich in den Projekt-Optionen immer unter "Hinzufügungen und Beeinflussungen" die benutzerdefinierte Option -gw2 (o.ä); damit werden alle verwendeten Packages mit Debug-Informationen (hier: Dwarf-2) übersetzt, und der Code der Units in Packages ist für den Debugger erreichbar.
Re: Wie komme ich einer externen SIGFPE auf die Schliche?
Danke für die Antwort.
Aber "external" meint in diesem Fall wohl irgendwo in den GTK2 Libs o.ä. und nicht im Pascal Code.
Ich denke deshalb nicht, dass ich mit -gw2 weiter komme.
Danke.
Aber "external" meint in diesem Fall wohl irgendwo in den GTK2 Libs o.ä. und nicht im Pascal Code.
Ich denke deshalb nicht, dass ich mit -gw2 weiter komme.
Danke.
Re: Wie komme ich einer externen SIGFPE auf die Schliche?
Habe gerade folgenden Code probiert:theo hat geschrieben: Di 19. Okt 2021, 17:52 Aber "external" meint in diesem Fall wohl irgendwo in den GTK2 Libs o.ä. und nicht im Pascal Code.
Code: Alles auswählen
var
x: Integer;
...
x := 0;
x := 1 div x;
Re: Wie komme ich einer externen SIGFPE auf die Schliche?
Zeigt dann auch Stacktrace nichts an?
Ich sehe nur dies:
Ich sehe nur dies:
- Dateianhänge
-
- stacktr.png (25.77 KiB) 1916 mal betrachtet
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Wie komme ich einer externen SIGFPE auf die Schliche?
Das "External" heißt wörtlich: Nicht im Pascal-Quelltext. In diesem Fall ist es das Betriebssystem, das eine Exception der CPU/FPU an dein Programm weiterleitet. In welchem Programmteil die Exception aufgetreten ist, steht damit gar nicht fest, da dies interner oder externer Code sein kann - solange die Exception nicht abgefangen wurde.wp_xyz hat geschrieben: Di 19. Okt 2021, 17:58 Also das "External" würde ich nicht allzu wörtlich nehmen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Wie komme ich einer externen SIGFPE auf die Schliche?
Hmm, interessanterweise bekomme ich, wenn ich das Programm direkt aus der Shell ohne Debugger starte ein paar Hinweise auf der Shell.
Innerhalb der IDE aber gar nichts.
Innerhalb der IDE aber gar nichts.
ExtCreatePen not implemented yet
BeginPath not implemented yet
EndPath not implemented yet
StrokePath not implemented yet
ERROR in code: TGtk2WidgetSet.DeleteObject invalid GdiObject=14061656
Creating gdb catchable error:
$00000000005FEDAA
$00000000007B5C46 DRAW, line 8603 of ../source/HTMLSubs.pas
$00000000007B7360 DRAW, line 8954 of ../source/HTMLSubs.pas
$00000000007C1F3C DRAWTABLE, line 10435 of ../source/HTMLSubs.pas
$00000000007BFF29 DRAW1, line 10673 of ../source/HTMLSubs.pas
$00000000007A95D6 DRAWTHELIST, line 6057 of ../source/HTMLSubs.pas
$00000000007A9191 DRAWBLOCK, line 6008 of ../source/HTMLSubs.pas
$00000000007A7D11 DRAWASBLOCK, line 5803 of ../source/HTMLSubs.pas
$00000000007A7318 DRAW1, line 5826 of ../source/HTMLSubs.pas
ERROR in code: TGtk2WidgetSet.DeleteObject invalid GdiObject=14061656
Creating gdb catchable error:
$00000000005FEDAA
$00000000007B5C46 DRAW, line 8603 of ../source/HTMLSubs.pas
$00000000007B7360 DRAW, line 8954 of ../source/HTMLSubs.pas
$00000000007C1F3C DRAWTABLE, line 10435 of ../source/HTMLSubs.pas
$00000000007BFF29 DRAW1, line 10673 of ../source/HTMLSubs.pas
$00000000007A95D6 DRAWTHELIST, line 6057 of ../source/HTMLSubs.pas
$00000000007A9191 DRAWBLOCK, line 6008 of ../source/HTMLSubs.pas
$00000000007A7D11 DRAWASBLOCK, line 5803 of ../source/HTMLSubs.pas
$00000000007A7318 DRAW1, line 5826 of ../source/HTMLSubs.pas
ExtCreatePen not implemented yet
BeginPath not implemented yet
EndPath not implemented yet
StrokePath not implemented yet
ERROR in code: TGtk2WidgetSet.DeleteObject invalid GdiObject=14061656
Creating gdb catchable error:
ETC ETC
Re: Wie komme ich einer externen SIGFPE auf die Schliche?
OK, hab's gefunden.
Das Problem ist tatsächlich auf line 8603 of ../source/HTMLSubs.pas.
Wenn ich dort auskommentiere, kackt er nicht mehr ab.
Jetzt muss ich nur noch herausfinden, warum das so ist.
Danke!
Das Problem ist tatsächlich auf line 8603 of ../source/HTMLSubs.pas.
Wenn ich dort auskommentiere, kackt er nicht mehr ab.
Jetzt muss ich nur noch herausfinden, warum das so ist.
Danke!
Re: Wie komme ich einer externen SIGFPE auf die Schliche?
So, jetzt geht es ein bisschen.
Diese Browser Komponente hat zwar ihre Macken und Grenzen, aber für einen Mail Reader reicht es gerade so und es sieht für mich doch erstaunlich ordentlich aus.
Im Anhang eine Werbemail vom Reifenhändler.
Diese Browser Komponente hat zwar ihre Macken und Grenzen, aber für einen Mail Reader reicht es gerade so und es sieht für mich doch erstaunlich ordentlich aus.
Im Anhang eine Werbemail vom Reifenhändler.

- Dateianhänge
-
- mailread.png (309.9 KiB) 1873 mal betrachtet
- af0815
- Lazarusforum e. V.
- Beiträge: 6787
- 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:
Re: Wie komme ich einer externen SIGFPE auf die Schliche?
Sieht wirklich brauchbar aus. Und wenn es aufgrund der Einfachheit, Werbepixel und Tracker nicht verarbeitet schon perfekt. 
BTW: Mit den CrossClimate Reifen habe ich bisher gute Erfahrung gemacht, auch in Österreich. Nur mit den Dimensionen muss man aufpassen. Der braucht eine gewisse Schulterhöhe, also nichts mit Niederquerschnitt.

BTW: Mit den CrossClimate Reifen habe ich bisher gute Erfahrung gemacht, auch in Österreich. Nur mit den Dimensionen muss man aufpassen. Der braucht eine gewisse Schulterhöhe, also nichts mit Niederquerschnitt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1647
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Wie komme ich einer externen SIGFPE auf die Schliche?
Hab das auch grad mal installiert (FPC 3.3.1 Laz 2.3.0)
Ich musste an einigen Stellen Klammern einfügen, damit es compiliert. Dann lief es aber auf Anhieb perfekt.
Den genannten SIGFPE konnte ich nicht erreichen.
Ich musste an einigen Stellen Klammern einfügen, damit es compiliert. Dann lief es aber auf Anhieb perfekt.
Den genannten SIGFPE konnte ich nicht erreichen.
Re: Wie komme ich einer externen SIGFPE auf die Schliche?
Ich habe die auch drauf. Hatte keine Lust mehr auf 2x Radwechsel pro Jahr.af0815 hat geschrieben: Mi 20. Okt 2021, 07:36 BTW: Mit den CrossClimate Reifen habe ich bisher gute Erfahrung gemacht, auch in Österreich. Nur mit den Dimensionen muss man aufpassen. Der braucht eine gewisse Schulterhöhe, also nichts mit Niederquerschnitt.
Kann nichts Schlechtes darüber sagen.
Wer nicht dringend im Winter in Gebirge rumkraxeln muss, ist damit gut bedient.
Re: Wie komme ich einer externen SIGFPE auf die Schliche?
Naja, die Darstellung ist recht brauchbar für einfache Anforderungen, aber man merkt halt, dass es ein Port von Windows/Delphi ist.fliegermichl hat geschrieben: Mi 20. Okt 2021, 08:50 Hab das auch grad mal installiert (FPC 3.3.1 Laz 2.3.0)
Ich musste an einigen Stellen Klammern einfügen, damit es compiliert. Dann lief es aber auf Anhieb perfekt.
Den genannten SIGFPE konnte ich nicht erreichen.
Es hakt überall ein bisschen. Auf Qt läuft's bei mir gar nicht, nur auf GTK2 und dort hat es mir schon mehrfach die IDE abgewürgt. Seither installiere ich es nicht mehr (-> Runtime Package), sondern Create die Komponente im Code.
Gewisse HTML Quellen führen zu Problemen wie SIGFPE. Das konnte ich jetzt flicken, aber es bleibt etwas rätselhaft.
Aber an sich ist die Komponente recht durchdacht.
- af0815
- Lazarusforum e. V.
- Beiträge: 6787
- 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:
Re: Wie komme ich einer externen SIGFPE auf die Schliche?
Welche Version von https://github.com/BerndGabriel/HtmlViewer verwendet ihr - master oder HtmlViewer-11.9 ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Wie komme ich einer externen SIGFPE auf die Schliche?
Ich habe jetzt 11.9 in Betrieb.
Auf dem OPM kommt noch 11.8
P.S. Auf Qt bekomme ich so etwas auf der Shell angezeigt bevor er abschmiert:
So etwas ist halt schwierig einzugrenzen.
Lazarus 2.3.0 FPC 3.3.1 x86_64-linux-gtk2
Auf dem OPM kommt noch 11.8
P.S. Auf Qt bekomme ich so etwas auf der Shell angezeigt bevor er abschmiert:
Code: Alles auswählen
QBackingStore::endPaint() called with active painter; did you forget to destroy it or call QPainter::end() on it?
QWidget::repaint: Recursive repaint detected
Lazarus 2.3.0 FPC 3.3.1 x86_64-linux-gtk2