reportAvOnComRelease MDA

Note

Dieser Artikel ist spezifisch für .NET Framework. Sie gilt nicht für neuere Implementierungen von .NET, einschließlich .NET 6 und höherer Versionen.

Der reportAvOnComRelease verwaltete Debugging-Assistent (Managed Debugging Assistant, MDA) wird aktiviert, wenn Ausnahmen aufgrund von Fehlern bei der Benutzerreferenzzählung ausgelöst werden, während die COM-Interoperabilität ausgeführt wird und die oder ReleaseComObject die Release Methode in Kombination mit unformatierten COM-Aufrufen verwendet wird.

Symptome

Zugriffsverletzungen und Speicherbeschädigungen.

Ursache

Gelegentlich wird eine Ausnahme aufgrund von Fehlern beim Zählen von Benutzern ausgelöst, während com-Interoperabilität ausgeführt wird und die oder ReleaseComObject die Release Methode in Kombination mit unformatierten COM-Aufrufen verwendet wird. Normalerweise wird diese Ausnahme verworfen, da dies nicht zu einer Zugriffsverletzung in der CLR führen würde, wodurch sie heruntergestreckt wird. Wenn dieser Assistent aktiviert ist, können solche Ausnahmen erkannt und gemeldet werden, anstatt einfach verworfen zu werden.

Auflösung

Überprüfen Sie den Referenzzählungscode, suchen Sie nach Fehlern sowie untersuchen Sie die systemeigenen Clients Ihres Objekts auf Verweiszählungsfehler.

Effekt auf die Laufzeit

Es stehen zwei Modi zur Verfügung. Wenn das allowAv Attribut lautet true, verhindert der Assistent, dass die Laufzeit die Zugriffsverletzung verwirft. Wenn allowAv dies der Standardwert ist false, verwirft die Laufzeit die Zugriffsverletzung, aber eine Warnmeldung wird dem Benutzer gemeldet, um anzugeben, dass eine Ausnahme ausgelöst und verworfen wurde.

Output

Wenn möglich, enthält die Ausgabe die ursprüngliche vtable des COM-Schnittstellenzeigers. Andernfalls wird eine Informationsmeldung angezeigt.

Konfiguration

<mdaConfig>
  <assistants>
    <reportAvOnComRelease />
  </assistants>
</mdaConfig>

Siehe auch