reportAvOnComRelease-MDA
Hinweis
Dieser Artikel gilt für das .NET Framework. Sie gilt nicht für neuere Implementierungen von .NET, einschließlich .NET 6 und höherer Versionen.
Der reportAvOnComRelease
-MDA (Managed Debugging Assistant, Assistent für verwaltetes Debuggen) wird aktiviert, wenn aufgrund von Fehlern bei der Benutzerverweiszählung Ausnahmen ausgelöst werden, während COM-Interop durchgeführt und die Release- oder die ReleaseComObject-Methode in Kombination mit Rohdaten-COM-Aufrufen verwendet wird.
Symptome
Zugriffsverletzungen und Speicherschäden.
Ursache
Es kann vorkommen, dass durch Fehler bei der Benutzerverweiszählung eine Ausnahme ausgelöst wird, während COM-Interop durchgeführt und die Release- oder die ReleaseComObject-Methode in Kombination mit Rohdaten-COM-Aufrufen verwendet wird. Normalerweise wird diese Ausnahme verworfen, da es andernfalls zu einer Zugriffsverletzung in der CLR kommen kann, wodurch diese beendet wird. Ist dieser Assistent aktiviert, können solche Ausnahmen festgestellt und gemeldet werden, anstatt sie einfach zu verwerfen.
Lösung
Überprüfen Sie den Verweiszählungscode und prüfen Sie auch die systemeigenen Clients Ihres Objekts auf Fehler bei der Verweiszählung.
Auswirkungen auf die Laufzeit
Es sind zwei Modi verfügbar. Ist das allowAv
-Attribut true
, verhindert der Assistent, dass die Laufzeit die Zugriffsverletzung verwirft. Hat allowAv
den Standardwert false
, verwirft die Laufzeit die Zugriffsverletzung und der Benutzer erhält die Warnmeldung, dass eine Ausnahme ausgelöst und verworfen wurde.
Ausgabe
Wenn möglich, enthält die Ausgabe den ursprünglichen vtable des COM-Schnittstellenzeigers. Andernfalls wird eine Informationsmeldung angezeigt.
Konfiguration
<mdaConfig>
<assistants>
<reportAvOnComRelease />
</assistants>
</mdaConfig>