Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   madExcept mit DUnitX verwenden (https://www.delphipraxis.net/205024-madexcept-mit-dunitx-verwenden.html)

mjustin 24. Jul 2020 12:16


madExcept mit DUnitX verwenden
 
Hallo,

ich habe versucht in DUnitX die madExcept Unterstützung für Exception-Stacktraces zu aktivieren.

In DUnitX.Stacktrace.inc kann man dazu ein DEFINE aktivieren:

Delphi-Quellcode:
// Uncomment to use MadExcept 4 for stacktrace support.
{.$DEFINE USE_MADEXCEPT4}
Nach Neukompilierung erhalte ich jedoch keinen Stacktrace, hat diese Kombination jemand mit dem aktuellen DUnitX erfolgreich eingesetzt?

himitsu 24. Jul 2020 14:40

AW: madExcept mit DUnitX verwenden
 
Hast du "nur" neu kompiliert?

Leider bekommt der Compiler nicht mit, wenn sich Include-Dateien geändert haben, da deren Datum/Inhalt nicht geprüft wird.
Also neu "Erzeugen" oder vorher die DCUs der Units löschen, wo diese INC drin steckt.

= Build statt Compile

haentschman 24. Jul 2020 14:58

AW: madExcept mit DUnitX verwenden
 
Moin...:P
Zitat:

Nach Neukompilierung erhalte ich jedoch keinen Stacktrace
Arbeitest du mit Build Gruppen? Ich habe gemerkt (Berlin), daß nur der aktive Eintrag den MadExcept einkompiliert bekommt. :evil:

mjustin 27. Jul 2020 08:47

AW: madExcept mit DUnitX verwenden
 
Danke für die Hinweise und Tipps. Leider funktioniert es bisher noch nicht, ich habe neu erzeugt und madExcept wird im Projekt eingebunden.

Ich habe noch die Unit DUnitX.StackTrace.MadExcept4 dem Projekt hinzugefügt da diese in der initialization den Aufruf

Delphi-Quellcode:
TDUnitXIoC.DefaultContainer.RegisterType<IStacktraceProvider,TMadExcept4StackTraceProvider>(true);
enthält, das half leider nicht. Die Exception die ich in einem der Testfälle auslöse wird weiterhin nur auf der Konsole geloggt, es wird kein madExcept Report ausgegeben oder gespeichert.

Weitere Untersuchung ergab: die initialization der Unit wird nicht ausgeführt (Breakpoint setzen ist auch nicht möglich, er wird zu einem "x" beim Debug-Lauf), daher habe ich den Code aus der Unit in die dpr Datei übernommen.

Delphi-Quellcode:
uses
  madExcept,
  madLinkDisAsm,
  madListHardware,
  madListProcesses,
  madListModules,
  DUnitX.IoC,
  DUnitX.StackTrace.MadExcept4,
...

var
   Runner: ITestRunner;
   Results: IRunResults;
begin
   TDUnitXIoC.DefaultContainer.RegisterType<IStacktraceProvider,TMadExcept4StackTraceProvider>(true);
Leider ohne Erfolg. Ich schaue mal ob ich beim DUnitX Projekt dazu etwas in Erfahrung bringen kann :)

TurboMagic 27. Jul 2020 10:36

AW: madExcept mit DUnitX verwenden
 
Als zahlender MadExcept Kunde könnte man auch mal dessen Autor Mathias Rauen befragen...
E.Mailo Adresse auf der MadExcept Webseite.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz