Area-InteractiveBugInteractive-DebuggingLanguage-VBhelp wanted
Repository metrics
- Stars
- (20,414 stars)
- PR merge metrics
- (Avg merge 6d 17h) (256 merged PRs in 30d)
Description
Steps to Reproduce:
Sub Main(args As String())
Thread.CurrentThread.CurrentCulture = New CultureInfo("pt-BR")
Dim dateTime = System.DateTime.Now
Console.WriteLine(dateTime) // breakpoint here
End Sub
- Start debugging and stop at breakpoint;
- Open Watch Window and evaluate the following expressions:
dateTime
dateTime.ToString()
Expected Behavior: Both expressions have the same formatting.
Actual Behavior: DateTime object evaluation ignores formatting and uses "en-US" by default.
Remarks
- Not a regression;
- The issue only reproduces on VB since it follows the codepath for DateTime as a primitive value;
- Regarding this code path on
Formatter.FormatPrimitive(...):
if (value.Type.GetLmrType().IsDateTime())
{
var dateDataValue = value.GetPropertyValue("Ticks", inspectionContext);
obj = new DateTime((long)dateDataValue.HostObjectValue);
}
It is no longer necessary - the debugger now returns the DateTime object at value.HostObjectValue.