Skip to content

Arguments passed as ScalarPairs do not work correctly with Windows debuggers #88625

Closed
@wesleywiser

Description

@wesleywiser

Arguments passed via the ScalarPair abi cannot be correctly inspected via WinDbg or VS debuggers. This occurs because the platform debuggers expect the type to passed via a pointer (as the abi says they should) and the debuggers are hardcoded to expect that.

Example:

fn foo(r: Range<usize>) {
    zzz(); // #break
}

Debuggers:

> dx r
r               : 0x14 [Type: core::ops::range::Range<usize> *]

(Notice the * in the type indicating the debugger expects to be looking at a pointer to the actual value, not it passed by value)

This is a more general version of #81894 which #81898 fixed for &str and slices.

Metadata

Metadata

Assignees

Labels

A-debuginfoArea: Debugging information in compiled programs (DWARF, PDB, etc.)C-bugCategory: This is a bug.O-windows-msvcToolchain: MSVC, Operating system: Windows

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions