diff options
author | bors <bors@rust-lang.org> | 2018-12-11 16:27:49 +0000 |
---|---|---|
committer | bors <bors@rust-lang.org> | 2018-12-11 16:27:49 +0000 |
commit | 8375ab4ff43474c73e3572c2b226560f8cc8e695 (patch) | |
tree | 9e8a4173d30fe7407d9ac9126fac8b0de2ea5490 | |
parent | 3499575282b5cda1e98220baae4f6c87e1863926 (diff) | |
parent | e6bbf7ef8d116c54d2e6160495d41ac54161e249 (diff) | |
download | rust-8375ab4ff43474c73e3572c2b226560f8cc8e695.tar.gz |
Auto merge of #53497 - fukatani:test-debuginfo-function-call, r=tromey
Test with gdb8.2 and add debuginfo printing function call test
As far as I can see, `print function()` is not tested. It is important feature for debugging.
-rw-r--r-- | src/test/debuginfo/function-call.rs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/test/debuginfo/function-call.rs b/src/test/debuginfo/function-call.rs new file mode 100644 index 00000000000..266e536e8f2 --- /dev/null +++ b/src/test/debuginfo/function-call.rs @@ -0,0 +1,52 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// This test does not passed with gdb < 8.0. See #53497. +// min-gdb-version 8.0 + +// compile-flags:-g + +// === GDB TESTS =================================================================================== + +// gdb-command:run + +// gdb-command:print fun(45, true) +// gdb-check:$1 = true +// gdb-command:print fun(444, false) +// gdb-check:$2 = false + +// gdb-command:print r.get_x() +// gdb-check:$3 = 4 + +#![allow(dead_code, unused_variables)] + +struct RegularStruct { + x: i32 +} + +impl RegularStruct { + fn get_x(&self) -> i32 { + self.x + } +} + +fn main() { + let _ = fun(4, true); + let r = RegularStruct{x: 4}; + let _ = r.get_x(); + + zzz(); // #break +} + +fn fun(x: isize, y: bool) -> bool { + y +} + +fn zzz() { () } |