|
1 | 1 | // only-cdb
|
2 |
| -// ignore-tidy-linelength |
3 | 2 | // compile-flags:-g
|
4 | 3 |
|
5 | 4 | // cdb-command: g
|
6 | 5 |
|
7 |
| -// Note: The natvis used to visualize niche-layout enums don't work correctly in cdb |
8 |
| -// so the best we can do is to make sure we are generating the right debuginfo. |
9 |
| -// Therefore, we use the `!` [format specifier](https://docs.microsoft.com/en-us/visualstudio/debugger/format-specifiers-in-cpp?view=vs-2019#BKMK_Visual_Studio_2012_format_specifiers) |
10 |
| -// to disable the natvis for a given expression. We also provide the `-r2` flag |
11 |
| -// to expand the expression 2 levels. |
12 |
| - |
13 |
| -// cdb-command: dx -r2 a,! |
14 |
| -// cdb-check:a,! [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>] |
15 |
| -// cdb-check: [+0x000] dataful_variant [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>::Some] |
16 |
| -// cdb-check: [+0x000] __0 : Low (0x2) [Type: msvc_pretty_enums::CStyleEnum] |
17 |
| -// cdb-check: [+0x000] discriminant : 0x2 [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>::Discriminant$] |
18 |
| - |
19 |
| -// cdb-command: dx -r2 b,! |
20 |
| -// cdb-check:b,! [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>] |
21 |
| -// cdb-check: [+0x000] dataful_variant [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>::Some] |
22 |
| -// cdb-check: [+0x000] __0 : 0x11 [Type: msvc_pretty_enums::CStyleEnum] |
23 |
| -// cdb-check: [+0x000] discriminant : None (0x11) [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>::Discriminant$] |
24 |
| - |
25 |
| -// cdb-command: dx -r2 c,! |
26 |
| -// cdb-check:c,! [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
27 |
| -// cdb-check: [+0x000] dataful_variant [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>::Data] |
28 |
| -// cdb-check: [+0x000] my_data : 0x11 [Type: msvc_pretty_enums::CStyleEnum] |
29 |
| -// cdb-check: [+0x000] discriminant : Tag1 (0x11) [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>::Discriminant$] |
30 |
| - |
31 |
| -// cdb-command: dx -r2 d,! |
32 |
| -// cdb-check:d,! [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
33 |
| -// cdb-check: [+0x000] dataful_variant [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>::Data] |
34 |
| -// cdb-check: [+0x000] my_data : High (0x10) [Type: msvc_pretty_enums::CStyleEnum] |
35 |
| -// cdb-check: [+0x000] discriminant : 0x10 [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>::Discriminant$] |
36 |
| - |
37 |
| -// cdb-command: dx -r2 e,! |
38 |
| -// cdb-check:e,! [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
39 |
| -// cdb-check: [+0x000] dataful_variant [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>::Data] |
40 |
| -// cdb-check: [+0x000] my_data : 0x13 [Type: msvc_pretty_enums::CStyleEnum] |
41 |
| -// cdb-check: [+0x000] discriminant : Tag2 (0x13) [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>::Discriminant$] |
42 |
| - |
43 |
| -// cdb-command: dx -r2 f,! |
44 |
| -// cdb-check:f,! [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>] |
45 |
| -// cdb-check: [+0x000] dataful_variant [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>::Some] |
46 |
| -// cdb-check: [+0x000] __0 : 0x[...] : 0x1 [Type: unsigned int *] |
47 |
| -// cdb-check: [+0x000] discriminant : 0x[...] [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>::Discriminant$] |
48 |
| - |
49 |
| -// cdb-command: dx -r2 g,! |
50 |
| -// cdb-check:g,! [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>] |
51 |
| -// cdb-check: [+0x000] dataful_variant [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>::Some] |
52 |
| -// cdb-check: [+0x000] __0 : 0x0 [Type: unsigned int *] |
53 |
| -// cdb-check: [+0x000] discriminant : None (0x0) [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>::Discriminant$] |
54 |
| - |
55 |
| -// cdb-command: dx -r2 h,! |
56 |
| -// cdb-check:h,! : Some [Type: enum$<core::option::Option<u32> >] |
57 |
| -// cdb-check: [+0x000] variant0 [Type: enum$<core::option::Option<u32> >::None] |
58 |
| -// cdb-check: [+0x000] variant1 [Type: enum$<core::option::Option<u32> >::Some] |
59 |
| -// cdb-check: [+0x004] __0 : 0xc [Type: unsigned int] |
60 |
| -// cdb-check: [+0x000] discriminant : Some (0x1) [Type: core::option::Option] |
| 6 | +// cdb-command: dx a |
| 7 | +// cdb-check:a : Some({...}) [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>] |
| 8 | +// cdb-check: [<Raw View>] [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>] |
| 9 | +// cdb-check: [variant] : Some |
| 10 | +// cdb-check: [+0x000] __0 : Low (0x2) [Type: msvc_pretty_enums::CStyleEnum] |
| 11 | + |
| 12 | +// cdb-command: dx b |
| 13 | +// cdb-check:b : None [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>] |
| 14 | +// cdb-check: [<Raw View>] [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>] |
| 15 | +// cdb-check: [variant] : None |
| 16 | + |
| 17 | +// cdb-command: dx c |
| 18 | +// cdb-check:c : Tag1 [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
| 19 | +// cdb-check: [<Raw View>] [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
| 20 | +// cdb-check: [variant] : Tag1 |
| 21 | + |
| 22 | +// cdb-command: dx d |
| 23 | +// cdb-check:d : Data({...}) [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
| 24 | +// cdb-check: [<Raw View>] [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
| 25 | +// cdb-check: [variant] : Data |
| 26 | +// cdb-check: [+0x000] my_data : High (0x10) [Type: msvc_pretty_enums::CStyleEnum] |
| 27 | + |
| 28 | +// cdb-command: dx e |
| 29 | +// cdb-check:e : Tag2 [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
| 30 | +// cdb-check: [<Raw View>] [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
| 31 | +// cdb-check: [variant] : Tag2 |
| 32 | + |
| 33 | +// cdb-command: dx f |
| 34 | +// cdb-check:f : Some({...}) [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>] |
| 35 | +// cdb-check: [<Raw View>] [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>] |
| 36 | +// cdb-check: [variant] : Some |
| 37 | +// cdb-check: [+0x000] __0 : 0x[...] : 0x1 [Type: unsigned int *] |
| 38 | + |
| 39 | +// cdb-command: dx g |
| 40 | +// cdb-check:g : None [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>] |
| 41 | +// cdb-check: [<Raw View>] [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>] |
| 42 | +// cdb-check: [variant] : None |
61 | 43 |
|
62 | 44 | // cdb-command: dx h
|
63 | 45 | // cdb-check:h : Some [Type: enum$<core::option::Option<u32> >]
|
64 | 46 | // cdb-check: [<Raw View>] [Type: enum$<core::option::Option<u32> >]
|
65 | 47 | // cdb-check: [variant] : Some
|
66 | 48 | // cdb-check: [+0x004] __0 : 0xc [Type: unsigned int]
|
67 | 49 |
|
68 |
| -// cdb-command: dx -r2 i,! |
69 |
| -// cdb-check:i,! : None [Type: enum$<core::option::Option<u32> >] |
70 |
| -// cdb-check: [+0x000] variant0 [Type: enum$<core::option::Option<u32> >::None] |
71 |
| -// cdb-check: [+0x000] variant1 [Type: enum$<core::option::Option<u32> >::Some] |
72 |
| -// cdb-check: [+0x004] __0 : 0x[...] [Type: unsigned int] |
73 |
| -// cdb-check: [+0x000] discriminant : None (0x0) [Type: core::option::Option] |
74 |
| - |
75 | 50 | // cdb-command: dx i
|
76 | 51 | // cdb-check:i : None [Type: enum$<core::option::Option<u32> >]
|
77 | 52 | // cdb-check: [<Raw View>] [Type: enum$<core::option::Option<u32> >]
|
|
80 | 55 | // cdb-command: dx j
|
81 | 56 | // cdb-check:j : High (0x10) [Type: msvc_pretty_enums::CStyleEnum]
|
82 | 57 |
|
83 |
| -// cdb-command: dx -r2 k,! |
84 |
| -// cdb-check:k,! [Type: enum$<core::option::Option<alloc::string::String>, 1, [...], Some>] |
85 |
| -// cdb-check: [+0x000] dataful_variant [Type: enum$<core::option::Option<alloc::string::String>, 1, [...], Some>::Some] |
86 |
| -// cdb-check: [+0x000] __0 [Type: alloc::string::String] |
87 |
| -// cdb-check: [+0x000] discriminant : 0x[...] [Type: enum$<core::option::Option<alloc::string::String>, 1, [...], Some>::Discriminant$] |
88 |
| - |
89 |
| -// cdb-command: dx -r2 l,! |
90 |
| -// cdb-check:l,! : $T2 [Type: enum$<core::result::Result<u32,enum$<msvc_pretty_enums::Empty> >, Ok>] |
91 |
| -// cdb-check: [+0x000] Ok [Type: enum$<core::result::Result<u32,enum$<msvc_pretty_enums::Empty> >, Ok>::Ok] |
92 |
| -// cdb-check: [+0x000] __0 : 0x2a [Type: unsigned int] |
| 58 | +// cdb-command: dx k |
| 59 | +// cdb-check:k : Some({...}) [Type: enum$<core::option::Option<alloc::string::String>, 1, [...], Some>] |
| 60 | +// cdb-check: [<Raw View>] [Type: enum$<core::option::Option<alloc::string::String>, 1, [...], Some>] |
| 61 | +// cdb-check: [variant] : Some |
| 62 | +// cdb-check: [+0x000] __0 : "IAMA optional string!" [Type: alloc::string::String] |
| 63 | + |
| 64 | +// cdb-command: dx l |
| 65 | +// cdb-check:l : Ok [Type: enum$<core::result::Result<u32,enum$<msvc_pretty_enums::Empty> >, Ok>] |
| 66 | +// cdb-check: [<Raw View>] [Type: enum$<core::result::Result<u32,enum$<msvc_pretty_enums::Empty> >, Ok>] |
| 67 | +// cdb-check: [variant] : Ok |
| 68 | +// cdb-check: [+0x000] __0 : 0x2a [Type: unsigned int] |
93 | 69 |
|
94 | 70 | pub enum CStyleEnum {
|
95 | 71 | Low = 2,
|
|
0 commit comments