2015-03-12 16:05:44 +00:00
|
|
|
// ignore-freebsd: gdb package too new
|
2019-05-20 09:44:26 +00:00
|
|
|
// only-cdb // "Temporarily" ignored on GDB/LLDB due to debuginfo tests being disabled, see PR 47155
|
2015-03-12 16:05:44 +00:00
|
|
|
// ignore-android: FIXME(#10381)
|
|
|
|
// compile-flags:-g
|
2020-07-18 03:17:30 +00:00
|
|
|
// min-gdb-version: 7.7
|
2015-05-09 14:48:36 +00:00
|
|
|
// min-lldb-version: 310
|
2021-03-30 17:43:39 +00:00
|
|
|
// min-cdb-version: 10.0.18317.1001
|
2015-05-09 14:48:36 +00:00
|
|
|
|
|
|
|
// === GDB TESTS ===================================================================================
|
2015-03-12 16:05:44 +00:00
|
|
|
|
|
|
|
// gdb-command: run
|
|
|
|
|
|
|
|
// gdb-command: print slice
|
|
|
|
// gdb-check:$1 = &[i32](len: 4) = {0, 1, 2, 3}
|
|
|
|
|
|
|
|
// gdb-command: print vec
|
2020-11-19 10:22:53 +00:00
|
|
|
// gdb-check:$2 = Vec<u64, alloc::alloc::Global>(len: 4, cap: [...]) = {4, 5, 6, 7}
|
2015-03-12 16:05:44 +00:00
|
|
|
|
|
|
|
// gdb-command: print str_slice
|
|
|
|
// gdb-check:$3 = "IAMA string slice!"
|
|
|
|
|
|
|
|
// gdb-command: print string
|
|
|
|
// gdb-check:$4 = "IAMA string!"
|
|
|
|
|
|
|
|
// gdb-command: print some
|
|
|
|
// gdb-check:$5 = Some = {8}
|
|
|
|
|
|
|
|
// gdb-command: print none
|
2016-10-25 21:32:04 +00:00
|
|
|
// gdbg-check:$6 = None
|
|
|
|
// gdbr-check:$6 = core::option::Option::None
|
2015-03-12 16:05:44 +00:00
|
|
|
|
2017-06-09 15:51:28 +00:00
|
|
|
// gdb-command: print os_string
|
|
|
|
// gdb-check:$7 = "IAMA OS string 😃"
|
2017-06-02 13:18:00 +00:00
|
|
|
|
2017-06-09 15:51:28 +00:00
|
|
|
// gdb-command: print some_string
|
|
|
|
// gdb-check:$8 = Some = {"IAMA optional string!"}
|
2017-06-01 18:26:09 +00:00
|
|
|
|
2017-10-03 19:28:57 +00:00
|
|
|
// gdb-command: set print length 5
|
|
|
|
// gdb-command: print some_string
|
|
|
|
// gdb-check:$8 = Some = {"IAMA "...}
|
|
|
|
|
2015-05-09 14:48:36 +00:00
|
|
|
// === LLDB TESTS ==================================================================================
|
|
|
|
|
|
|
|
// lldb-command: run
|
|
|
|
|
|
|
|
// lldb-command: print slice
|
|
|
|
// lldb-check:[...]$0 = &[0, 1, 2, 3]
|
|
|
|
|
|
|
|
// lldb-command: print vec
|
|
|
|
// lldb-check:[...]$1 = vec![4, 5, 6, 7]
|
|
|
|
|
|
|
|
// lldb-command: print str_slice
|
|
|
|
// lldb-check:[...]$2 = "IAMA string slice!"
|
|
|
|
|
|
|
|
// lldb-command: print string
|
|
|
|
// lldb-check:[...]$3 = "IAMA string!"
|
|
|
|
|
|
|
|
// lldb-command: print some
|
|
|
|
// lldb-check:[...]$4 = Some(8)
|
|
|
|
|
|
|
|
// lldb-command: print none
|
|
|
|
// lldb-check:[...]$5 = None
|
|
|
|
|
2019-05-14 12:50:58 +00:00
|
|
|
// lldb-command: print os_string
|
|
|
|
// lldb-check:[...]$6 = "IAMA OS string 😃"[...]
|
|
|
|
|
Add basic CDB support to debuginfo compiletest s, to help catch `*.natvis` regressions, like those fixed in #60687.
Several Microsoft debuggers (VS, VS Code, WinDbg, CDB, ...) consume the `*.natvis` files we embed into rust `*.pdb` files.
While this only tests CDB, that test coverage should help for all of them.
CHANGES
src\bootstrap
- test.rs: Run CDB debuginfo tests on MSVC targets
src\test\debuginfo
- issue-13213.rs: CDB has trouble with this, skip for now (newly discovered regression?)
- pretty-std.rs: Was ignored, re-enable for CDB only to start with, add CDB tests.
- should-fail.rs: Add CDB tests.
src\tools\compiletest:
- Added "-cdb" option
- Added Mode::DebugInfoCdb ("debuginfo-cdb")
- Added run_debuginfo_cdb_test[_no_opt]
- Renamed Mode::DebugInfoBoth -> DebugInfoGdbLldb ("debuginfo-gdb+lldb") since it's no longer clear what "Both" means.
- Find CDB at the default Win10 SDK install path "C:\Program Files (x86)\Windows Kits\10\Debugger\*\cdb.exe"
- Ignore CDB tests if CDB not found.
ISSUES
- `compute_stamp_hash`: not sure if there's any point in hashing `%ProgramFiles(x86)%`
- `OsString` lacks any `*.natvis` entries (would be nice to add in a followup changelist)
- DSTs (array/string slices) which work in VS & VS Code fail in CDB.
- I've avoided `Mode::DebugInfoAll` as 3 debuggers leads to pow(2,3)=8 possible combinations.
REFERENCE
CDB is not part of the base Visual Studio install, but can be added via the Windows 10 SDK:
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
Installing just "Debugging Tools for Windows" is sufficient.
CDB appears to already be installed on appveyor CI, where this changelist can find it, based on it's use here:
https://github.com/rust-lang/rust/blob/0ffc57311030a1930edfa721fe57d0000a063af4/appveyor.yml#L227
CDB commands and command line reference:
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-reference
2019-05-20 00:10:48 +00:00
|
|
|
// === CDB TESTS ==================================================================================
|
|
|
|
|
|
|
|
// cdb-command: g
|
|
|
|
|
|
|
|
// cdb-command: dx slice,d
|
Improve debug symbol names to avoid ambiguity and work better with MSVC's debugger
There are several cases where names of types and functions in the debug info are either ambiguous, or not helpful, such as including ambiguous placeholders (e.g., `{{impl}}`, `{{closure}}` or `dyn _'`) or dropping qualifications (e.g., for dynamic types).
Instead, each debug symbol name should be unique and useful:
* Include disambiguators for anonymous `DefPathDataName` (closures and generators), and unify their formatting when used as a path-qualifier vs item being qualified.
* Qualify the principal trait for dynamic types.
* If there is no principal trait for a dynamic type, emit all other traits instead.
* Respect the `qualified` argument when emitting ref and pointer types.
* For implementations, emit the disambiguator.
* Print const generics when emitting generic parameters or arguments.
Additionally, when targeting MSVC, its debugger treats many command arguments as C++ expressions, even when the argument is defined to be a symbol name. As such names in the debug info need to be more C++-like to be parsed correctly:
* Avoid characters with special meaning (`#`, `[`, `"`, `+`).
* Never start a name with `<` or `{` as this is treated as an operator.
* `>>` is always treated as a right-shift, even when parsing generic arguments (so add a space to avoid this).
* Emit function declarations using C/C++ style syntax (e.g., leading return type).
* Emit arrays as a synthetic `array$<type, size>` type.
* Include a `$` in all synthetic types as this is a legal character for C++, but not Rust (thus we avoid collisions with user types).
2021-06-24 17:36:28 +00:00
|
|
|
// cdb-check:slice,d : { len=4 } [Type: slice$<i32>]
|
2021-03-30 17:43:39 +00:00
|
|
|
// cdb-check: [len] : 4 [Type: [...]]
|
|
|
|
// cdb-check: [0] : 0 [Type: int]
|
|
|
|
// cdb-check: [1] : 1 [Type: int]
|
|
|
|
// cdb-check: [2] : 2 [Type: int]
|
|
|
|
// cdb-check: [3] : 3 [Type: int]
|
Add basic CDB support to debuginfo compiletest s, to help catch `*.natvis` regressions, like those fixed in #60687.
Several Microsoft debuggers (VS, VS Code, WinDbg, CDB, ...) consume the `*.natvis` files we embed into rust `*.pdb` files.
While this only tests CDB, that test coverage should help for all of them.
CHANGES
src\bootstrap
- test.rs: Run CDB debuginfo tests on MSVC targets
src\test\debuginfo
- issue-13213.rs: CDB has trouble with this, skip for now (newly discovered regression?)
- pretty-std.rs: Was ignored, re-enable for CDB only to start with, add CDB tests.
- should-fail.rs: Add CDB tests.
src\tools\compiletest:
- Added "-cdb" option
- Added Mode::DebugInfoCdb ("debuginfo-cdb")
- Added run_debuginfo_cdb_test[_no_opt]
- Renamed Mode::DebugInfoBoth -> DebugInfoGdbLldb ("debuginfo-gdb+lldb") since it's no longer clear what "Both" means.
- Find CDB at the default Win10 SDK install path "C:\Program Files (x86)\Windows Kits\10\Debugger\*\cdb.exe"
- Ignore CDB tests if CDB not found.
ISSUES
- `compute_stamp_hash`: not sure if there's any point in hashing `%ProgramFiles(x86)%`
- `OsString` lacks any `*.natvis` entries (would be nice to add in a followup changelist)
- DSTs (array/string slices) which work in VS & VS Code fail in CDB.
- I've avoided `Mode::DebugInfoAll` as 3 debuggers leads to pow(2,3)=8 possible combinations.
REFERENCE
CDB is not part of the base Visual Studio install, but can be added via the Windows 10 SDK:
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
Installing just "Debugging Tools for Windows" is sufficient.
CDB appears to already be installed on appveyor CI, where this changelist can find it, based on it's use here:
https://github.com/rust-lang/rust/blob/0ffc57311030a1930edfa721fe57d0000a063af4/appveyor.yml#L227
CDB commands and command line reference:
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-reference
2019-05-20 00:10:48 +00:00
|
|
|
|
|
|
|
// cdb-command: dx vec,d
|
2021-07-19 09:00:21 +00:00
|
|
|
// cdb-check:vec,d [...] : { len=4 } [Type: [...]::Vec<u64,alloc::alloc::Global>]
|
2020-12-22 22:02:07 +00:00
|
|
|
// cdb-check: [len] : 4 [Type: [...]]
|
Add basic CDB support to debuginfo compiletest s, to help catch `*.natvis` regressions, like those fixed in #60687.
Several Microsoft debuggers (VS, VS Code, WinDbg, CDB, ...) consume the `*.natvis` files we embed into rust `*.pdb` files.
While this only tests CDB, that test coverage should help for all of them.
CHANGES
src\bootstrap
- test.rs: Run CDB debuginfo tests on MSVC targets
src\test\debuginfo
- issue-13213.rs: CDB has trouble with this, skip for now (newly discovered regression?)
- pretty-std.rs: Was ignored, re-enable for CDB only to start with, add CDB tests.
- should-fail.rs: Add CDB tests.
src\tools\compiletest:
- Added "-cdb" option
- Added Mode::DebugInfoCdb ("debuginfo-cdb")
- Added run_debuginfo_cdb_test[_no_opt]
- Renamed Mode::DebugInfoBoth -> DebugInfoGdbLldb ("debuginfo-gdb+lldb") since it's no longer clear what "Both" means.
- Find CDB at the default Win10 SDK install path "C:\Program Files (x86)\Windows Kits\10\Debugger\*\cdb.exe"
- Ignore CDB tests if CDB not found.
ISSUES
- `compute_stamp_hash`: not sure if there's any point in hashing `%ProgramFiles(x86)%`
- `OsString` lacks any `*.natvis` entries (would be nice to add in a followup changelist)
- DSTs (array/string slices) which work in VS & VS Code fail in CDB.
- I've avoided `Mode::DebugInfoAll` as 3 debuggers leads to pow(2,3)=8 possible combinations.
REFERENCE
CDB is not part of the base Visual Studio install, but can be added via the Windows 10 SDK:
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
Installing just "Debugging Tools for Windows" is sufficient.
CDB appears to already be installed on appveyor CI, where this changelist can find it, based on it's use here:
https://github.com/rust-lang/rust/blob/0ffc57311030a1930edfa721fe57d0000a063af4/appveyor.yml#L227
CDB commands and command line reference:
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-reference
2019-05-20 00:10:48 +00:00
|
|
|
// cdb-check: [capacity] : [...] [Type: [...]]
|
|
|
|
// cdb-check: [0] : 4 [Type: unsigned __int64]
|
|
|
|
// cdb-check: [1] : 5 [Type: unsigned __int64]
|
|
|
|
// cdb-check: [2] : 6 [Type: unsigned __int64]
|
|
|
|
// cdb-check: [3] : 7 [Type: unsigned __int64]
|
|
|
|
|
|
|
|
// cdb-command: dx str_slice
|
2021-03-30 17:43:39 +00:00
|
|
|
// cdb-check:str_slice : "IAMA string slice!" [Type: str]
|
Add basic CDB support to debuginfo compiletest s, to help catch `*.natvis` regressions, like those fixed in #60687.
Several Microsoft debuggers (VS, VS Code, WinDbg, CDB, ...) consume the `*.natvis` files we embed into rust `*.pdb` files.
While this only tests CDB, that test coverage should help for all of them.
CHANGES
src\bootstrap
- test.rs: Run CDB debuginfo tests on MSVC targets
src\test\debuginfo
- issue-13213.rs: CDB has trouble with this, skip for now (newly discovered regression?)
- pretty-std.rs: Was ignored, re-enable for CDB only to start with, add CDB tests.
- should-fail.rs: Add CDB tests.
src\tools\compiletest:
- Added "-cdb" option
- Added Mode::DebugInfoCdb ("debuginfo-cdb")
- Added run_debuginfo_cdb_test[_no_opt]
- Renamed Mode::DebugInfoBoth -> DebugInfoGdbLldb ("debuginfo-gdb+lldb") since it's no longer clear what "Both" means.
- Find CDB at the default Win10 SDK install path "C:\Program Files (x86)\Windows Kits\10\Debugger\*\cdb.exe"
- Ignore CDB tests if CDB not found.
ISSUES
- `compute_stamp_hash`: not sure if there's any point in hashing `%ProgramFiles(x86)%`
- `OsString` lacks any `*.natvis` entries (would be nice to add in a followup changelist)
- DSTs (array/string slices) which work in VS & VS Code fail in CDB.
- I've avoided `Mode::DebugInfoAll` as 3 debuggers leads to pow(2,3)=8 possible combinations.
REFERENCE
CDB is not part of the base Visual Studio install, but can be added via the Windows 10 SDK:
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
Installing just "Debugging Tools for Windows" is sufficient.
CDB appears to already be installed on appveyor CI, where this changelist can find it, based on it's use here:
https://github.com/rust-lang/rust/blob/0ffc57311030a1930edfa721fe57d0000a063af4/appveyor.yml#L227
CDB commands and command line reference:
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-reference
2019-05-20 00:10:48 +00:00
|
|
|
|
|
|
|
// cdb-command: dx string
|
|
|
|
// cdb-check:string : "IAMA string!" [Type: [...]::String]
|
|
|
|
// cdb-check: [<Raw View>] [Type: [...]::String]
|
2020-12-22 22:02:07 +00:00
|
|
|
// cdb-check: [len] : 0xc [Type: [...]]
|
Add basic CDB support to debuginfo compiletest s, to help catch `*.natvis` regressions, like those fixed in #60687.
Several Microsoft debuggers (VS, VS Code, WinDbg, CDB, ...) consume the `*.natvis` files we embed into rust `*.pdb` files.
While this only tests CDB, that test coverage should help for all of them.
CHANGES
src\bootstrap
- test.rs: Run CDB debuginfo tests on MSVC targets
src\test\debuginfo
- issue-13213.rs: CDB has trouble with this, skip for now (newly discovered regression?)
- pretty-std.rs: Was ignored, re-enable for CDB only to start with, add CDB tests.
- should-fail.rs: Add CDB tests.
src\tools\compiletest:
- Added "-cdb" option
- Added Mode::DebugInfoCdb ("debuginfo-cdb")
- Added run_debuginfo_cdb_test[_no_opt]
- Renamed Mode::DebugInfoBoth -> DebugInfoGdbLldb ("debuginfo-gdb+lldb") since it's no longer clear what "Both" means.
- Find CDB at the default Win10 SDK install path "C:\Program Files (x86)\Windows Kits\10\Debugger\*\cdb.exe"
- Ignore CDB tests if CDB not found.
ISSUES
- `compute_stamp_hash`: not sure if there's any point in hashing `%ProgramFiles(x86)%`
- `OsString` lacks any `*.natvis` entries (would be nice to add in a followup changelist)
- DSTs (array/string slices) which work in VS & VS Code fail in CDB.
- I've avoided `Mode::DebugInfoAll` as 3 debuggers leads to pow(2,3)=8 possible combinations.
REFERENCE
CDB is not part of the base Visual Studio install, but can be added via the Windows 10 SDK:
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
Installing just "Debugging Tools for Windows" is sufficient.
CDB appears to already be installed on appveyor CI, where this changelist can find it, based on it's use here:
https://github.com/rust-lang/rust/blob/0ffc57311030a1930edfa721fe57d0000a063af4/appveyor.yml#L227
CDB commands and command line reference:
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-reference
2019-05-20 00:10:48 +00:00
|
|
|
// cdb-check: [capacity] : 0xc [Type: [...]]
|
2020-12-22 22:02:07 +00:00
|
|
|
|
|
|
|
// cdb-command: dx -r2 string
|
Add basic CDB support to debuginfo compiletest s, to help catch `*.natvis` regressions, like those fixed in #60687.
Several Microsoft debuggers (VS, VS Code, WinDbg, CDB, ...) consume the `*.natvis` files we embed into rust `*.pdb` files.
While this only tests CDB, that test coverage should help for all of them.
CHANGES
src\bootstrap
- test.rs: Run CDB debuginfo tests on MSVC targets
src\test\debuginfo
- issue-13213.rs: CDB has trouble with this, skip for now (newly discovered regression?)
- pretty-std.rs: Was ignored, re-enable for CDB only to start with, add CDB tests.
- should-fail.rs: Add CDB tests.
src\tools\compiletest:
- Added "-cdb" option
- Added Mode::DebugInfoCdb ("debuginfo-cdb")
- Added run_debuginfo_cdb_test[_no_opt]
- Renamed Mode::DebugInfoBoth -> DebugInfoGdbLldb ("debuginfo-gdb+lldb") since it's no longer clear what "Both" means.
- Find CDB at the default Win10 SDK install path "C:\Program Files (x86)\Windows Kits\10\Debugger\*\cdb.exe"
- Ignore CDB tests if CDB not found.
ISSUES
- `compute_stamp_hash`: not sure if there's any point in hashing `%ProgramFiles(x86)%`
- `OsString` lacks any `*.natvis` entries (would be nice to add in a followup changelist)
- DSTs (array/string slices) which work in VS & VS Code fail in CDB.
- I've avoided `Mode::DebugInfoAll` as 3 debuggers leads to pow(2,3)=8 possible combinations.
REFERENCE
CDB is not part of the base Visual Studio install, but can be added via the Windows 10 SDK:
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
Installing just "Debugging Tools for Windows" is sufficient.
CDB appears to already be installed on appveyor CI, where this changelist can find it, based on it's use here:
https://github.com/rust-lang/rust/blob/0ffc57311030a1930edfa721fe57d0000a063af4/appveyor.yml#L227
CDB commands and command line reference:
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-reference
2019-05-20 00:10:48 +00:00
|
|
|
// cdb-check: [0] : 73 'I' [Type: char]
|
|
|
|
// cdb-check: [1] : 65 'A' [Type: char]
|
|
|
|
// cdb-check: [2] : 77 'M' [Type: char]
|
|
|
|
// cdb-check: [3] : 65 'A' [Type: char]
|
|
|
|
// cdb-check: [4] : 32 ' ' [Type: char]
|
|
|
|
// cdb-check: [5] : 115 's' [Type: char]
|
|
|
|
// cdb-check: [6] : 116 't' [Type: char]
|
|
|
|
// cdb-check: [7] : 114 'r' [Type: char]
|
|
|
|
// cdb-check: [8] : 105 'i' [Type: char]
|
|
|
|
// cdb-check: [9] : 110 'n' [Type: char]
|
|
|
|
// cdb-check: [10] : 103 'g' [Type: char]
|
|
|
|
// cdb-check: [11] : 33 '!' [Type: char]
|
|
|
|
|
|
|
|
// cdb-command: dx os_string
|
2021-09-10 23:51:10 +00:00
|
|
|
// NOTE: OSString is WTF-8 encoded which Windows debuggers don't understand. Verify the UTF-8
|
|
|
|
// portion displays correctly.
|
|
|
|
// cdb-check:os_string : "IAMA OS string [...]" [Type: std::ffi::os_str::OsString]
|
2021-07-01 19:57:12 +00:00
|
|
|
// cdb-check: [<Raw View>] [Type: std::ffi::os_str::OsString]
|
2021-09-10 23:51:10 +00:00
|
|
|
// cdb-check: [chars] : "IAMA OS string [...]"
|
Add basic CDB support to debuginfo compiletest s, to help catch `*.natvis` regressions, like those fixed in #60687.
Several Microsoft debuggers (VS, VS Code, WinDbg, CDB, ...) consume the `*.natvis` files we embed into rust `*.pdb` files.
While this only tests CDB, that test coverage should help for all of them.
CHANGES
src\bootstrap
- test.rs: Run CDB debuginfo tests on MSVC targets
src\test\debuginfo
- issue-13213.rs: CDB has trouble with this, skip for now (newly discovered regression?)
- pretty-std.rs: Was ignored, re-enable for CDB only to start with, add CDB tests.
- should-fail.rs: Add CDB tests.
src\tools\compiletest:
- Added "-cdb" option
- Added Mode::DebugInfoCdb ("debuginfo-cdb")
- Added run_debuginfo_cdb_test[_no_opt]
- Renamed Mode::DebugInfoBoth -> DebugInfoGdbLldb ("debuginfo-gdb+lldb") since it's no longer clear what "Both" means.
- Find CDB at the default Win10 SDK install path "C:\Program Files (x86)\Windows Kits\10\Debugger\*\cdb.exe"
- Ignore CDB tests if CDB not found.
ISSUES
- `compute_stamp_hash`: not sure if there's any point in hashing `%ProgramFiles(x86)%`
- `OsString` lacks any `*.natvis` entries (would be nice to add in a followup changelist)
- DSTs (array/string slices) which work in VS & VS Code fail in CDB.
- I've avoided `Mode::DebugInfoAll` as 3 debuggers leads to pow(2,3)=8 possible combinations.
REFERENCE
CDB is not part of the base Visual Studio install, but can be added via the Windows 10 SDK:
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
Installing just "Debugging Tools for Windows" is sufficient.
CDB appears to already be installed on appveyor CI, where this changelist can find it, based on it's use here:
https://github.com/rust-lang/rust/blob/0ffc57311030a1930edfa721fe57d0000a063af4/appveyor.yml#L227
CDB commands and command line reference:
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-reference
2019-05-20 00:10:48 +00:00
|
|
|
|
|
|
|
// cdb-command: dx some
|
2022-07-07 13:01:43 +00:00
|
|
|
// cdb-check:some : Some [Type: enum2$<core::option::Option<i16> >]
|
|
|
|
// cdb-check: [<Raw View>] [Type: enum2$<core::option::Option<i16> >]
|
2021-06-24 20:37:03 +00:00
|
|
|
// cdb-check: [+0x002] __0 : 8 [Type: short]
|
2021-03-30 17:43:39 +00:00
|
|
|
|
Add basic CDB support to debuginfo compiletest s, to help catch `*.natvis` regressions, like those fixed in #60687.
Several Microsoft debuggers (VS, VS Code, WinDbg, CDB, ...) consume the `*.natvis` files we embed into rust `*.pdb` files.
While this only tests CDB, that test coverage should help for all of them.
CHANGES
src\bootstrap
- test.rs: Run CDB debuginfo tests on MSVC targets
src\test\debuginfo
- issue-13213.rs: CDB has trouble with this, skip for now (newly discovered regression?)
- pretty-std.rs: Was ignored, re-enable for CDB only to start with, add CDB tests.
- should-fail.rs: Add CDB tests.
src\tools\compiletest:
- Added "-cdb" option
- Added Mode::DebugInfoCdb ("debuginfo-cdb")
- Added run_debuginfo_cdb_test[_no_opt]
- Renamed Mode::DebugInfoBoth -> DebugInfoGdbLldb ("debuginfo-gdb+lldb") since it's no longer clear what "Both" means.
- Find CDB at the default Win10 SDK install path "C:\Program Files (x86)\Windows Kits\10\Debugger\*\cdb.exe"
- Ignore CDB tests if CDB not found.
ISSUES
- `compute_stamp_hash`: not sure if there's any point in hashing `%ProgramFiles(x86)%`
- `OsString` lacks any `*.natvis` entries (would be nice to add in a followup changelist)
- DSTs (array/string slices) which work in VS & VS Code fail in CDB.
- I've avoided `Mode::DebugInfoAll` as 3 debuggers leads to pow(2,3)=8 possible combinations.
REFERENCE
CDB is not part of the base Visual Studio install, but can be added via the Windows 10 SDK:
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
Installing just "Debugging Tools for Windows" is sufficient.
CDB appears to already be installed on appveyor CI, where this changelist can find it, based on it's use here:
https://github.com/rust-lang/rust/blob/0ffc57311030a1930edfa721fe57d0000a063af4/appveyor.yml#L227
CDB commands and command line reference:
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-reference
2019-05-20 00:10:48 +00:00
|
|
|
// cdb-command: dx none
|
2022-07-07 13:01:43 +00:00
|
|
|
// cdb-check:none : None [Type: enum2$<core::option::Option<i64> >]
|
|
|
|
// cdb-check: [<Raw View>] [Type: enum2$<core::option::Option<i64> >]
|
2021-03-30 17:43:39 +00:00
|
|
|
|
Add basic CDB support to debuginfo compiletest s, to help catch `*.natvis` regressions, like those fixed in #60687.
Several Microsoft debuggers (VS, VS Code, WinDbg, CDB, ...) consume the `*.natvis` files we embed into rust `*.pdb` files.
While this only tests CDB, that test coverage should help for all of them.
CHANGES
src\bootstrap
- test.rs: Run CDB debuginfo tests on MSVC targets
src\test\debuginfo
- issue-13213.rs: CDB has trouble with this, skip for now (newly discovered regression?)
- pretty-std.rs: Was ignored, re-enable for CDB only to start with, add CDB tests.
- should-fail.rs: Add CDB tests.
src\tools\compiletest:
- Added "-cdb" option
- Added Mode::DebugInfoCdb ("debuginfo-cdb")
- Added run_debuginfo_cdb_test[_no_opt]
- Renamed Mode::DebugInfoBoth -> DebugInfoGdbLldb ("debuginfo-gdb+lldb") since it's no longer clear what "Both" means.
- Find CDB at the default Win10 SDK install path "C:\Program Files (x86)\Windows Kits\10\Debugger\*\cdb.exe"
- Ignore CDB tests if CDB not found.
ISSUES
- `compute_stamp_hash`: not sure if there's any point in hashing `%ProgramFiles(x86)%`
- `OsString` lacks any `*.natvis` entries (would be nice to add in a followup changelist)
- DSTs (array/string slices) which work in VS & VS Code fail in CDB.
- I've avoided `Mode::DebugInfoAll` as 3 debuggers leads to pow(2,3)=8 possible combinations.
REFERENCE
CDB is not part of the base Visual Studio install, but can be added via the Windows 10 SDK:
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
Installing just "Debugging Tools for Windows" is sufficient.
CDB appears to already be installed on appveyor CI, where this changelist can find it, based on it's use here:
https://github.com/rust-lang/rust/blob/0ffc57311030a1930edfa721fe57d0000a063af4/appveyor.yml#L227
CDB commands and command line reference:
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-reference
2019-05-20 00:10:48 +00:00
|
|
|
// cdb-command: dx some_string
|
2022-07-07 13:01:43 +00:00
|
|
|
// cdb-check:some_string : Some [Type: enum2$<core::option::Option<alloc::string::String> >]
|
|
|
|
// cdb-check: [<Raw View>] [Type: enum2$<core::option::Option<alloc::string::String> >]
|
2021-09-10 23:51:10 +00:00
|
|
|
// cdb-check: [+0x000] __0 : "IAMA optional string!" [Type: alloc::string::String]
|
Add basic CDB support to debuginfo compiletest s, to help catch `*.natvis` regressions, like those fixed in #60687.
Several Microsoft debuggers (VS, VS Code, WinDbg, CDB, ...) consume the `*.natvis` files we embed into rust `*.pdb` files.
While this only tests CDB, that test coverage should help for all of them.
CHANGES
src\bootstrap
- test.rs: Run CDB debuginfo tests on MSVC targets
src\test\debuginfo
- issue-13213.rs: CDB has trouble with this, skip for now (newly discovered regression?)
- pretty-std.rs: Was ignored, re-enable for CDB only to start with, add CDB tests.
- should-fail.rs: Add CDB tests.
src\tools\compiletest:
- Added "-cdb" option
- Added Mode::DebugInfoCdb ("debuginfo-cdb")
- Added run_debuginfo_cdb_test[_no_opt]
- Renamed Mode::DebugInfoBoth -> DebugInfoGdbLldb ("debuginfo-gdb+lldb") since it's no longer clear what "Both" means.
- Find CDB at the default Win10 SDK install path "C:\Program Files (x86)\Windows Kits\10\Debugger\*\cdb.exe"
- Ignore CDB tests if CDB not found.
ISSUES
- `compute_stamp_hash`: not sure if there's any point in hashing `%ProgramFiles(x86)%`
- `OsString` lacks any `*.natvis` entries (would be nice to add in a followup changelist)
- DSTs (array/string slices) which work in VS & VS Code fail in CDB.
- I've avoided `Mode::DebugInfoAll` as 3 debuggers leads to pow(2,3)=8 possible combinations.
REFERENCE
CDB is not part of the base Visual Studio install, but can be added via the Windows 10 SDK:
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
Installing just "Debugging Tools for Windows" is sufficient.
CDB appears to already be installed on appveyor CI, where this changelist can find it, based on it's use here:
https://github.com/rust-lang/rust/blob/0ffc57311030a1930edfa721fe57d0000a063af4/appveyor.yml#L227
CDB commands and command line reference:
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-reference
2019-05-20 00:10:48 +00:00
|
|
|
|
2021-06-30 21:23:44 +00:00
|
|
|
// cdb-command: dx linkedlist
|
|
|
|
// cdb-check:linkedlist : { len=0x2 } [Type: alloc::collections::linked_list::LinkedList<i32>]
|
|
|
|
// cdb-check: [<Raw View>] [Type: alloc::collections::linked_list::LinkedList<i32>]
|
|
|
|
// cdb-check: [0x0] : 128 [Type: int]
|
|
|
|
// cdb-check: [0x1] : 42 [Type: int]
|
|
|
|
|
|
|
|
// cdb-command: dx vecdeque
|
2021-07-25 18:34:08 +00:00
|
|
|
// cdb-check:vecdeque : { len=0x2 } [Type: alloc::collections::vec_deque::VecDeque<i32,alloc::alloc::Global>]
|
|
|
|
// cdb-check: [<Raw View>] [Type: alloc::collections::vec_deque::VecDeque<i32,alloc::alloc::Global>]
|
2021-06-30 21:23:44 +00:00
|
|
|
// cdb-check: [len] : 0x2
|
2021-07-14 20:50:11 +00:00
|
|
|
// cdb-check: [capacity] : 0x8 [Type: unsigned [...]]
|
2021-06-30 21:23:44 +00:00
|
|
|
// cdb-check: [0x0] : 90 [Type: int]
|
|
|
|
// cdb-check: [0x1] : 20 [Type: int]
|
|
|
|
|
2015-04-22 04:53:07 +00:00
|
|
|
#![allow(unused_variables)]
|
2021-06-30 21:23:44 +00:00
|
|
|
use std::collections::{LinkedList, VecDeque};
|
2017-06-02 13:18:00 +00:00
|
|
|
use std::ffi::OsString;
|
|
|
|
|
2015-03-12 16:05:44 +00:00
|
|
|
fn main() {
|
|
|
|
// &[]
|
|
|
|
let slice: &[i32] = &[0, 1, 2, 3];
|
|
|
|
|
|
|
|
// Vec
|
|
|
|
let vec = vec![4u64, 5, 6, 7];
|
|
|
|
|
|
|
|
// &str
|
|
|
|
let str_slice = "IAMA string slice!";
|
|
|
|
|
|
|
|
// String
|
|
|
|
let string = "IAMA string!".to_string();
|
|
|
|
|
2017-06-02 13:18:00 +00:00
|
|
|
// OsString
|
|
|
|
let os_string = OsString::from("IAMA OS string \u{1F603}");
|
|
|
|
|
2015-03-12 16:05:44 +00:00
|
|
|
// Option
|
|
|
|
let some = Some(8i16);
|
|
|
|
let none: Option<i64> = None;
|
|
|
|
|
2017-06-01 18:26:09 +00:00
|
|
|
let some_string = Some("IAMA optional string!".to_owned());
|
|
|
|
|
2021-06-30 21:23:44 +00:00
|
|
|
// LinkedList
|
|
|
|
let mut linkedlist = LinkedList::new();
|
|
|
|
linkedlist.push_back(42);
|
|
|
|
linkedlist.push_front(128);
|
|
|
|
|
|
|
|
// VecDeque
|
|
|
|
let mut vecdeque = VecDeque::new();
|
|
|
|
vecdeque.push_back(20);
|
|
|
|
vecdeque.push_front(90);
|
|
|
|
|
2015-03-12 16:05:44 +00:00
|
|
|
zzz(); // #break
|
|
|
|
}
|
|
|
|
|
2022-06-20 15:50:27 +00:00
|
|
|
fn zzz() {
|
|
|
|
()
|
|
|
|
}
|