| // ignore-tidy-linelength | |
| //@ ignore-windows-gnu: #128981 | |
| //@ ignore-android: FIXME(#10381) | |
| //@ compile-flags:-g | |
| // LLDB 1800+ tests were not tested in CI, broke, and now are disabled | |
| //@ ignore-lldb | |
| //@ min-cdb-version: 10.0.18317.1001 | |
| //@ ignore-backends: gcc | |
| // === GDB TESTS =================================================================================== | |
| //@ gdb-command: run | |
| //@ gdb-command: print slice | |
| //@ gdb-check:$1 = &[i32](size=4) = {0, 1, 2, 3} | |
| //@ gdb-command: print vec | |
| //@ gdb-check:$2 = Vec(size=4) = {4, 5, 6, 7} | |
| //@ 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 = core::option::Option<i16>::Some(8) | |
| //@ gdb-command: print none | |
| //@ gdb-check:$6 = core::option::Option<i64>::None | |
| //@ gdb-command: print os_string | |
| //@ gdb-check:$7 = "IAMA OS string 😃" | |
| //@ gdb-command: print some_string | |
| //@ gdb-check:$8 = core::option::Option<alloc::string::String>::Some("IAMA optional string!") | |
| //@ gdb-command: set print elements 5 | |
| //@ gdb-command: print some_string | |
| //@ gdb-check:$9 = core::option::Option<alloc::string::String>::Some("IAMA "...) | |
| // === LLDB TESTS ================================================================================== | |
| //@ lldb-command:run | |
| //@ lldb-command:v slice | |
| //@ lldb-check:[...] slice = size=4 { [0] = 0 [1] = 1 [2] = 2 [3] = 3 } | |
| //@ lldb-command:v vec | |
| //@ lldb-check:[...] vec = size=4 { [0] = 4 [1] = 5 [2] = 6 [3] = 7 } | |
| //@ lldb-command:v str_slice | |
| //@ lldb-check:[...] str_slice = "IAMA string slice!" { [0] = 'I' [1] = 'A' [2] = 'M' [3] = 'A' [4] = ' ' [5] = 's' [6] = 't' [7] = 'r' [8] = 'i' [9] = 'n' [10] = 'g' [11] = ' ' [12] = 's' [13] = 'l' [14] = 'i' [15] = 'c' [16] = 'e' [17] = '!' } | |
| //@ lldb-command:v string | |
| //@ lldb-check:[...] string = "IAMA string!" { [0] = 'I' [1] = 'A' [2] = 'M' [3] = 'A' [4] = ' ' [5] = 's' [6] = 't' [7] = 'r' [8] = 'i' [9] = 'n' [10] = 'g' [11] = '!' } | |
| //@ lldb-command:v some | |
| //@ lldb-check:[...] some = Some(8) | |
| //@ lldb-command:v none | |
| //@ lldb-check:[...] none = None | |
| //@ lldb-command:v os_string | |
| //@ lldb-check:[...] os_string = "IAMA OS string 😃" { inner = { inner = size=19 { [0] = 'I' [1] = 'A' [2] = 'M' [3] = 'A' [4] = ' ' [5] = 'O' [6] = 'S' [7] = ' ' [8] = 's' [9] = 't' [10] = 'r' [11] = 'i' [12] = 'n' [13] = 'g' [14] = ' ' [15] = '\xf0' [16] = '\x9f' [17] = '\x98' [18] = '\x83' } } } | |
| // === CDB TESTS ================================================================================== | |
| //@ cdb-command: g | |
| //@ cdb-command: dx slice,d | |
| //@ cdb-check:slice,d : { len=4 } [Type: ref$<slice2$<i32> >] | |
| //@ 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] | |
| //@ cdb-command: dx vec,d | |
| //@ cdb-check:vec,d [...] : { len=4 } [Type: [...]::Vec<u64,alloc::alloc::Global>] | |
| //@ cdb-check: [len] : 4 [Type: [...]] | |
| //@ cdb-check: [capacity] : [...] [Type: [...]] | |
| //@ cdb-check: [0] : 4 [Type: u64] | |
| //@ cdb-check: [1] : 5 [Type: u64] | |
| //@ cdb-check: [2] : 6 [Type: u64] | |
| //@ cdb-check: [3] : 7 [Type: u64] | |
| //@ cdb-command: dx str_slice | |
| //@ cdb-check:str_slice : "IAMA string slice!" [Type: ref$<str$>] | |
| //@ cdb-command: dx string | |
| //@ cdb-check:string : "IAMA string!" [Type: [...]::String] | |
| //@ cdb-check: [<Raw View>] [Type: [...]::String] | |
| //@ cdb-check: [len] : 0xc [Type: [...]] | |
| //@ cdb-check: [capacity] : 0xc [Type: [...]] | |
| //@ cdb-command: dx -r2 string | |
| //@ 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 | |
| // 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] | |
| //@ cdb-check: [<Raw View>] [Type: std::ffi::os_str::OsString] | |
| //@ cdb-check: [chars] : "IAMA OS string [...]" | |
| //@ cdb-command: dx some | |
| //@ cdb-check:some : Some [Type: enum2$<core::option::Option<i16> >] | |
| //@ cdb-check: [<Raw View>] [Type: enum2$<core::option::Option<i16> >] | |
| //@ cdb-check: [+0x002] __0 : 8 [Type: short] | |
| //@ cdb-command: dx none | |
| //@ cdb-check:none : None [Type: enum2$<core::option::Option<i64> >] | |
| //@ cdb-check: [<Raw View>] [Type: enum2$<core::option::Option<i64> >] | |
| //@ cdb-command: dx some_string | |
| //@ 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> >] | |
| //@ cdb-check: [+0x000] __0 : "IAMA optional string!" [Type: alloc::string::String] | |
| //@ cdb-command: dx linkedlist | |
| //@ cdb-check:linkedlist : { len=0x2 } [Type: alloc::collections::linked_list::LinkedList<i32,alloc::alloc::Global>] | |
| //@ cdb-check: [<Raw View>] [Type: alloc::collections::linked_list::LinkedList<i32,alloc::alloc::Global>] | |
| //@ cdb-check: [0x0] : 128 [Type: int] | |
| //@ cdb-check: [0x1] : 42 [Type: int] | |
| //@ cdb-command: dx vecdeque | |
| //@ 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>] | |
| //@ cdb-check: [len] : 0x2 [Type: unsigned [...]] | |
| //@ cdb-check: [capacity] : 0x8 [Type: unsigned [...]] | |
| //@ cdb-check: [0x0] : 90 [Type: i32] | |
| //@ cdb-check: [0x1] : 20 [Type: i32] | |
| #![allow(unused_variables)] | |
| use std::collections::{LinkedList, VecDeque}; | |
| use std::ffi::OsString; | |
| 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(); | |
| // OsString | |
| let os_string = OsString::from("IAMA OS string \u{1F603}"); | |
| // Option | |
| let some = Some(8i16); | |
| let none: Option<i64> = None; | |
| let some_string = Some("IAMA optional string!".to_owned()); | |
| // LinkedList | |
| let mut linkedlist = LinkedList::new(); | |
| linkedlist.push_back(42); | |
| linkedlist.push_front(128); | |
| // VecDeque | |
| let mut vecdeque = VecDeque::with_capacity(8); | |
| vecdeque.push_back(20); | |
| vecdeque.push_front(90); | |
| zzz(); // #break | |
| } | |
| fn zzz() { | |
| () | |
| } |