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.
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:
Debuggers:
(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
&strand slices.