| //@ compile-flags:-g | 
 | //@ ignore-lldb | 
 | //@ ignore-windows-gnu: #128981 | 
 |  | 
 | // === CDB TESTS ================================================================================== | 
 |  | 
 | // cdb-command: g | 
 |  | 
 | // The .nvlist command in cdb does not always have a deterministic output | 
 | // for the order that NatVis files are displayed. | 
 |  | 
 | // cdb-command: .nvlist | 
 | // cdb-check:    [...].exe (embedded NatVis "[...]embedded_visualizer-0.natvis") | 
 |  | 
 | // cdb-command: .nvlist | 
 | // cdb-check:    [...].exe (embedded NatVis "[...]embedded_visualizer-1.natvis") | 
 |  | 
 | // cdb-command: .nvlist | 
 | // cdb-check:    [...].exe (embedded NatVis "[...]embedded_visualizer-2.natvis") | 
 |  | 
 | // cdb-command: dx point_a | 
 | // cdb-check:point_a          : (0, 0) [Type: embedded_visualizer::point::Point] | 
 | // cdb-check:    [<Raw View>]     [Type: embedded_visualizer::point::Point] | 
 | // cdb-check:    [x]              : 0 [Type: int] | 
 | // cdb-check:    [y]              : 0 [Type: int] | 
 |  | 
 | // cdb-command: dx point_b | 
 | // cdb-check:point_b          : (5, 8) [Type: embedded_visualizer::point::Point] | 
 | // cdb-check:    [<Raw View>]     [Type: embedded_visualizer::point::Point] | 
 | // cdb-check:    [x]              : 5 [Type: int] | 
 | // cdb-check:    [y]              : 8 [Type: int] | 
 |  | 
 | // cdb-command: dx line | 
 | // cdb-check:line             : ((0, 0), (5, 8)) [Type: embedded_visualizer::Line] | 
 | // cdb-check:    [<Raw View>]     [Type: embedded_visualizer::Line] | 
 | // cdb-check:    [a]              : (0, 0) [Type: embedded_visualizer::point::Point] | 
 | // cdb-check:    [b]              : (5, 8) [Type: embedded_visualizer::point::Point] | 
 |  | 
 | // cdb-command: dx person | 
 | // cdb-check:person           : "Person A" is 10 years old. [Type: dependency_with_embedded_visualizers::Person] | 
 | // cdb-check:    [<Raw View>]     [Type: dependency_with_embedded_visualizers::Person] | 
 | // cdb-check:    [name]           : "Person A" [Type: alloc::string::String] | 
 | // cdb-check:    [age]            : 10 [Type: int] | 
 |  | 
 | // === GDB TESTS =================================================================================== | 
 |  | 
 | // gdb-command: run | 
 |  | 
 | // gdb-command: info auto-load python-scripts | 
 | // gdb-check:Yes     pretty-printer-embedded_visualizer-0 | 
 | // gdb-check:Yes     pretty-printer-embedded_visualizer-1 | 
 | // gdb-command: print point_a | 
 | // gdb-check:$1 = (0, 0) | 
 | // gdb-command: print point_b | 
 | // gdb-check:$2 = (5, 8) | 
 | // gdb-command: print line | 
 | // gdb-check:$3 = ((0, 0), (5, 8)) | 
 | // gdb-command: print person | 
 | // gdb-check:$4 = "Person A" is 10 years old. | 
 |  | 
 | #![allow(unused_variables)] | 
 | #![debugger_visualizer(natvis_file = "embedded-visualizer.natvis")] | 
 | #![debugger_visualizer(gdb_script_file = "embedded-visualizer.py")] | 
 |  | 
 | //@ aux-build: dependency-with-embedded-visualizers.rs | 
 | extern crate dependency_with_embedded_visualizers; | 
 |  | 
 | use dependency_with_embedded_visualizers::Person; | 
 |  | 
 | #[debugger_visualizer(natvis_file = "embedded-visualizer-point.natvis")] | 
 | #[debugger_visualizer(gdb_script_file = "embedded-visualizer-point.py")] | 
 | mod point { | 
 |     pub struct Point { | 
 |         x: i32, | 
 |         y: i32, | 
 |     } | 
 |  | 
 |     impl Point { | 
 |         pub fn new(x: i32, y: i32) -> Point { | 
 |             Point { x: x, y: y } | 
 |         } | 
 |     } | 
 | } | 
 |  | 
 | use point::Point; | 
 |  | 
 | pub struct Line { | 
 |     a: Point, | 
 |     b: Point, | 
 | } | 
 |  | 
 | impl Line { | 
 |     pub fn new(a: Point, b: Point) -> Line { | 
 |         Line { a: a, b: b } | 
 |     } | 
 | } | 
 |  | 
 | fn main() { | 
 |     let point_a = Point::new(0, 0); | 
 |     let point_b = Point::new(5, 8); | 
 |     let line = Line::new(point_a, point_b); | 
 |  | 
 |     let name = String::from("Person A"); | 
 |     let person = Person::new(name, 10); | 
 |  | 
 |     zzz(); // #break | 
 | } | 
 |  | 
 | fn zzz() { | 
 |     () | 
 | } |