about summary refs log tree commit diff
path: root/tests/debuginfo/basic-stepping.rs
blob: f6399814a43a80acafad70dbb5e3936c5d3ae9f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//! Test that stepping through a simple program with a debugger one line at a
//! time works intuitively, e.g. that `next` takes you to the next source line.
//! Regression test for <https://github.com/rust-lang/rust/issues/33013>.

//@ ignore-aarch64: Doesn't work yet.
//@ ignore-loongarch64: Doesn't work yet.
//@ ignore-riscv64: Doesn't work yet.
//@ compile-flags: -g

// gdb-command: run
// FIXME(#97083): Should we be able to break on initialization of zero-sized types?
// FIXME(#97083): Right now the first breakable line is:
// gdb-check:   let mut c = 27;
// gdb-command: next
// gdb-check:   let d = c = 99;
// gdb-command: next
// FIXME(#33013): gdb-check:   let e = "hi bob";
// FIXME(#33013): gdb-command: next
// FIXME(#33013): gdb-check:   let f = b"hi bob";
// FIXME(#33013): gdb-command: next
// FIXME(#33013): gdb-check:   let g = b'9';
// FIXME(#33013): gdb-command: next
// FIXME(#33013): gdb-check:   let h = ["whatever"; 8];
// FIXME(#33013): gdb-command: next
// gdb-check:   let i = [1,2,3,4];
// gdb-command: next
// gdb-check:   let j = (23, "hi");
// gdb-command: next
// gdb-check:   let k = 2..3;
// gdb-command: next
// gdb-check:   let l = &i[k];
// gdb-command: next
// gdb-check:   let m: *const() = &a;

fn main () {
    let a = (); // #break
    let b : [i32; 0] = [];
    let mut c = 27;
    let d = c = 99;
    let e = "hi bob";
    let f = b"hi bob";
    let g = b'9';
    let h = ["whatever"; 8];
    let i = [1,2,3,4];
    let j = (23, "hi");
    let k = 2..3;
    let l = &i[k];
    let m: *const() = &a;
}