[cDAC] Add API TranslateExceptionRecordToNotification#125931
Conversation
…lateExceptionRecordToNotification Co-authored-by: rcj1 <77995559+rcj1@users.noreply.github.com> Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/3d4683a7-5378-41a6-bb65-fe35cacb62e5 Co-authored-by: rcj1 <77995559+rcj1@users.noreply.github.com> Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/163ce877-10b9-4016-bfa8-0c889c4344d3 Co-authored-by: rcj1 <77995559+rcj1@users.noreply.github.com> Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/d2c7bddc-dc21-4acf-8d09-e66d8d1852d3 Co-authored-by: rcj1 <77995559+rcj1@users.noreply.github.com> Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/af5a239e-4a57-49f1-a673-27583d01977f
|
Tagging subscribers to this area: @steveisok, @tommcdon, @dotnet/dotnet-diag |
There was a problem hiding this comment.
Pull request overview
Adds a managed cDAC surface for decoding debugger notification exception records and wires it into the legacy IXCLRDataProcess.TranslateExceptionRecordToNotification implementation.
Changes:
- Added
INotificationsAPIs (type detection + parse helpers) plus new public notification-related data types (NotificationType,GcEventType,GcEventData). - Implemented these APIs for contract version 1 (
Notifications_1) and updated legacy IXCLRData COM interop signatures (including addingEXCEPTION_RECORD64). - Added unit tests validating notification type mapping and parse helpers.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/native/managed/cdac/tests/NotificationsTests.cs | New unit tests for INotifications decoding/parsing behavior. |
| src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/SOSDacImpl.IXCLRDataProcess.cs | Implements TranslateExceptionRecordToNotification using the cDAC Notifications contract. |
| src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/IXCLRData.cs | Adds EXCEPTION_RECORD64 and updates COM interface signatures to typed parameters. |
| src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/ClrDataExceptionState.cs | Updates exception-state COM method signatures to use EXCEPTION_RECORD64*. |
| src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Contracts/Contracts/Notifications_1.cs | Implements the new INotifications APIs for contract version 1. |
| src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Abstractions/Contracts/INotifications.cs | Defines the new contract APIs and public notification-related types. |
| docs/design/datacontracts/Notifications.md | Documents the new Notifications contract APIs and related types. |
...naged/cdac/Microsoft.Diagnostics.DataContractReader.Abstractions/Contracts/INotifications.cs
Show resolved
Hide resolved
.../managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/SOSDacImpl.IXCLRDataProcess.cs
Outdated
Show resolved
Hide resolved
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
.../managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/SOSDacImpl.IXCLRDataProcess.cs
Outdated
Show resolved
Hide resolved
.../managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/SOSDacImpl.IXCLRDataProcess.cs
Outdated
Show resolved
Hide resolved
.../managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/SOSDacImpl.IXCLRDataProcess.cs
Outdated
Show resolved
Hide resolved
...managed/cdac/Microsoft.Diagnostics.DataContractReader.Contracts/Contracts/Notifications_1.cs
Outdated
Show resolved
Hide resolved
...managed/cdac/Microsoft.Diagnostics.DataContractReader.Contracts/Contracts/Notifications_1.cs
Outdated
Show resolved
Hide resolved
.../managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/SOSDacImpl.IXCLRDataProcess.cs
Outdated
Show resolved
Hide resolved
.../managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/SOSDacImpl.IXCLRDataProcess.cs
Outdated
Show resolved
Hide resolved
.../managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/SOSDacImpl.IXCLRDataProcess.cs
Outdated
Show resolved
Hide resolved
…er.Legacy/SOSDacImpl.IXCLRDataProcess.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
...naged/cdac/Microsoft.Diagnostics.DataContractReader.Abstractions/Contracts/INotifications.cs
Outdated
Show resolved
Hide resolved
.../managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/SOSDacImpl.IXCLRDataProcess.cs
Outdated
Show resolved
Hide resolved
...naged/cdac/Microsoft.Diagnostics.DataContractReader.Abstractions/Contracts/INotifications.cs
Outdated
Show resolved
Hide resolved
src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/IXCLRData.cs
Outdated
Show resolved
Hide resolved
.../managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/SOSDacImpl.IXCLRDataProcess.cs
Show resolved
Hide resolved
...managed/cdac/Microsoft.Diagnostics.DataContractReader.Contracts/Contracts/Notifications_1.cs
Show resolved
Hide resolved
...naged/cdac/Microsoft.Diagnostics.DataContractReader.Abstractions/Contracts/INotifications.cs
Show resolved
Hide resolved
This comment has been minimized.
This comment has been minimized.
b597cb1 to
8d3c983
Compare
.../managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/SOSDacImpl.IXCLRDataProcess.cs
Show resolved
Hide resolved
🤖 Copilot Code Review — PR #125931Note This review was generated by GitHub Copilot. Holistic AssessmentMotivation: This PR adds Approach: The approach is clean and well-structured. Using C# records with an abstract base type ( Summary: Detailed Findings
|
Tested locally with various notifications. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Tested locally with various notifications.