dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.46k stars 4.76k forks source link

AVX-512 debugger support: view registers #87854

Open BruceForstall opened 1 year ago

BruceForstall commented 1 year ago

AVX-512 introduces new zmm and k registers. The Visual Studio Registers window can show these if you right-click in the window and choose "AVX-512". However, the values are "grayed out" when debugging a managed app, and they do not show actual values (they show zeros).

The Registers window also shows ymm registers if you right-click and choose "AVX". These are also not available when debugging a managed app.

It appears that Vector512 variables do show the correct values.

To add support for the Registers window:

  1. Ensure the AVX/AVX-512 registers are defined in the CorDebugRegister enum
  2. Review ICorDebugRegisterSet2 to ensure the API would work with AVX/AVX-512
  3. Add the appropriate implementation to CordbRegisterSet::GetRegistersAvailable, CordbRegisterSet::GetRegisters, more.
ghost commented 1 year ago

Tagging subscribers to this area: @tommcdon See info in area-owners.md if you want to be subscribed.

Issue Details
AVX-512 introduces new `zmm` and `k` registers. The Visual Studio Registers window can show these if you right-click in the window and choose "AVX-512". However, the values are "grayed out" when debugging a managed app, and they do not show actual values (they show zeros). The Registers window also shows `ymm` registers if you right-click and choose "AVX". These are also not available when debugging a managed app. It appears that Vector512 variables _do_ show the correct values.
Author: BruceForstall
Assignees: -
Labels: `area-Diagnostics-coreclr`, `arch-avx512`
Milestone: Future
tommcdon commented 1 year ago

cc @caslan

BruceForstall commented 1 year ago

cc @dotnet/avx512-contrib