AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Fehler in der Fehlerbehandlung

Ein Thema von himitsu · begonnen am 25. Sep 2020
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
37.519 Beiträge
 
Delphi 10.4 Sydney
 
#1

Fehler in der Fehlerbehandlung

  Alt 25. Sep 2020, 20:13
sind eines der schlimmsten Dinge, die extremst nerven können.

Seit Tagen suche ich in unserem Code, in Fremdkomponenten und im FinalBuilder Fehler, bei der Umstellung auf 10.4.

Und am Ende stellt sich raus, dass der Fehler im Eurekalog steckt und diese Typen grob fahrlässig sämtliche Compilerwarnungen ignoriert haben.
Fast alles lässt sich nun auf eine nicht-initialisierte Variable zurückführen.
Delphi-Quellcode:
function InternalExecute: Integer;
begin
  ...
  WriteLine(GetStr(rsELCompiling));
  ExitCode := ExecWait(Compiler, Params); //***** call DCC32
  if ExitCode = 0 then
  begin
    ...
  end
  else
    WriteError(Format(GetStr(rsELCompileErrorCodeFmt), [ExitCode]));
  Result := ExitCode;
  ...
end;

function Execute: Integer;
  function ProtectedExecute: Integer;
  begin
    ...
    InternalExecute; //***** the result is lost :(
    ...
  end;
begin
  ...
  Result := ProtectedExecute;
  ...
end;
Mit dem Ergebnis, dass bei einem Kollegen schonmal im Log alles OK war, aber der Build dennoch abgebrochen war
und bei mir genau andersrum, also alles war angeblich "OK", aber eigentlich gab es noch viele Fehler.
DCC32 oder ECC32 zeigen einen Fehler oder OK, aber dem FinalBuilder und jedem Anderen, der auf den ExitCode/ErrorLevel des ECC hört, wird eventuell (zufällig) was komplett Anderes gesagt.


Auch sind deren Parserfunktionen etwas "speziell".
Gut, dass Eurekalog von {$LIBSUFFIX AUTO} noch nichts gehört hat und es deswegen noch fehlt, kann man verstehen,
aber als ich es für uns erstmal implementiert hab und dabei deren Code sah .... da darf in der DPR kein Leerzeichen zuviel/zuwenig sein, in IFDEF oder Auskommentiert darf sowas auch nicht vorkommen und in eine INC verschoben sowieso nicht ... witzig nur, dass man gerade Sowas in vielen Fremdkomponenten regelmäßig findet, und ganz bestimmt auch in Quellcodes vieler Projekte.



Auch im Debugger können Eurekalog, Madexcept und Co. richtig viel Spaß bereiten, wenn man in deren Hooks landet und nicht mehr raus kommt.


Von abgefangene Fehlern, die wortlos verworfen oder durch nutzlose Fehlertexte ersetze werden,
bzw. wo Fehler neu ausgelöst und dabei die ursprüngliche Fehlermeldung/-position verloren gehen, will man lieber nicht reden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (25. Sep 2020 um 20:17 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf