DebuggerDisplay attribute displays incorrectly under certain (extremely rare) conditions
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
Research direction
Reproduce the behavior using the Program.cs example in a .NET 9 console application, then inspect how the debugger resolves DebuggerDisplay for the net9_preview.TextSegment type with its Segments member. Compare the tooltip with the expected "I'm a TextSegment" output and verify that changing each name independently avoids the issue.
Written by the indexing model from the issue text.
Description
Description
The text displayed by the debugger for a variable containing a reference to a class is incorrect only when the following three conditions are satisfied. The namespace of the class must be net9_preview, the class must be named TextSegment, and it must contain a property named Segments.
To be honest, the conditions seem to be so rare that I don't expect many people will be hitting this issue, if any. I only stumbled upon this problem in a console app where I quickly test out new ideas and that I keep around since the .NET 9 preview days. Its default namespace, which I never bothered to change is net9_preview, which I certainly don't need to preserve. So I'm really reporting this more out of curiosity than any expectation that this will be fixed.
Reproduction Steps
- Create a new console application that targets .NET 9 and replace Program.cs with the following code.
using System.Diagnostics;
using net9_preview;
TextSegment segment = new();
return;
namespace net9_preview
{
[DebuggerDisplay($"I'm a {nameof(TextSegment)}")]
internal class TextSegment
{
public int Segments => 42;
}
}
- Execute in the debugger and examine the text shown for the
segmentvariable after executing the line that initializes it.
Expected behavior
The debugger tooltip should display the text "I'm a TextSegment".
Actual behavior
The debugger tooltip displays the text "Segments = 42" .
Regression?
No response
Known Workarounds
Changing any single one of the following for the TextSegment class restores the behavior expected from the applied DebuggerDisplay attribute.
- namespace (e.g. change to
net10_preview), - class name (e.g. change to
TextChunk), - Segments property name (e.g. change to
Items)
Configuration
.NET 9.0.1
OS Name: Windows
OS Version: 10.0.19045
OS Platform: Windows
RID: win-x64
Other information
No response
- Dominant language
- C#
- Stars
- 18.3k
- Forks
- 5.6k
- PR merge metrics
- PR metrics pending
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from dotnet/runtime
-
agentic-workflows untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
area-System.Reflection blocking-clean-ci-optional Known Build Error os-mac-os-x untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
area-CodeGen-coreclr untriaged
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
agentic-workflows untriaged
Difficulty 1/5 Under an hour Newbie friendliness 78/100
-
area-VM-meta-mono untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
:watch: Not Triaged 11.0 fundamentals/subsvc
Difficulty 2/5 1-3 hours Newbie friendliness 92/100
dotnet/AspNetCore.Docs#37699 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
SubtitleEdit/subtitleedit#15108 · 1 comment ·
-
area/docs-content Bug pulumi/docs
Difficulty 1/5 1-3 hours Newbie friendliness 94/100
-
Create parent directories only after the containment check in InstallHelper.TryExtractToDirectory Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
PowerShell/PSResourceGet#2056 ·