From e696309fa38d7b7fa425baa34a04dfde3ede2828 Mon Sep 17 00:00:00 2001 From: Ryan Levick Date: Mon, 16 May 2022 17:54:12 +0200 Subject: [PATCH 1/7] Add a test for issue #33172 --- src/test/debuginfo/no_mangle-info.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/test/debuginfo/no_mangle-info.rs diff --git a/src/test/debuginfo/no_mangle-info.rs b/src/test/debuginfo/no_mangle-info.rs new file mode 100644 index 0000000000000..c34de43768c41 --- /dev/null +++ b/src/test/debuginfo/no_mangle-info.rs @@ -0,0 +1,26 @@ +// compile-flags:-g + +// === GDB TESTS =================================================================================== + +// gdb-command:run +// gdb-command:whatis TEST +// gdb-check:type = u64 + +// === LLDB TESTS ================================================================================== + +// lldb-command:run +// lldb-command:expr TEST +// lldb-check: (unsigned long) $0 = 3735928559 + +// === CDB TESTS ================================================================================== +// cdb-command: g + +// cdb-command: dx a!no_mangle_info::TEST +// cdb-check: a!no_mangle_info::TEST : 0xdeadbeef [Type: unsigned __int64] + +#[no_mangle] +pub static TEST: u64 = 0xdeadbeef; + +pub fn main() { + println!("TEST: {}", TEST); // #break +} From f2ee1242b114e77d688f0839e3b0653aa04fb6c1 Mon Sep 17 00:00:00 2001 From: Ryan Levick Date: Mon, 20 Jun 2022 15:38:22 +0200 Subject: [PATCH 2/7] Turn off cdb test for now, link to issue --- src/test/debuginfo/no_mangle-info.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/test/debuginfo/no_mangle-info.rs b/src/test/debuginfo/no_mangle-info.rs index c34de43768c41..7bedcaf2110e8 100644 --- a/src/test/debuginfo/no_mangle-info.rs +++ b/src/test/debuginfo/no_mangle-info.rs @@ -1,22 +1,21 @@ // compile-flags:-g // === GDB TESTS =================================================================================== - // gdb-command:run // gdb-command:whatis TEST // gdb-check:type = u64 // === LLDB TESTS ================================================================================== - // lldb-command:run // lldb-command:expr TEST // lldb-check: (unsigned long) $0 = 3735928559 // === CDB TESTS ================================================================================== -// cdb-command: g - -// cdb-command: dx a!no_mangle_info::TEST -// cdb-check: a!no_mangle_info::TEST : 0xdeadbeef [Type: unsigned __int64] +// FIXME: This does not currently work due to a bug in LLVM +// The fix for this is being tracked in rust-lang/rust#98295 +// // cdb-command: g +// // cdb-command: dx a!no_mangle_info::TEST +// // cdb-check: a!no_mangle_info::TEST : 0xdeadbeef [Type: unsigned __int64] #[no_mangle] pub static TEST: u64 = 0xdeadbeef; From 95f4d41100cc1ef87206b9510a259be9abc23c55 Mon Sep 17 00:00:00 2001 From: Ryan Levick Date: Mon, 20 Jun 2022 18:45:08 +0200 Subject: [PATCH 3/7] Turn CDB test back on and all clarifying test --- src/test/debuginfo/no_mangle-info.rs | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/test/debuginfo/no_mangle-info.rs b/src/test/debuginfo/no_mangle-info.rs index 7bedcaf2110e8..1e182eb7cc06f 100644 --- a/src/test/debuginfo/no_mangle-info.rs +++ b/src/test/debuginfo/no_mangle-info.rs @@ -4,22 +4,34 @@ // gdb-command:run // gdb-command:whatis TEST // gdb-check:type = u64 +// gdb-command:whatis no_mangle_info::namespace::OTHER_TEST +// gdb-check:type = u64 // === LLDB TESTS ================================================================================== // lldb-command:run // lldb-command:expr TEST // lldb-check: (unsigned long) $0 = 3735928559 +// lldb-command:expr no_mangle_test::namespace::OTHER_TEST +// lldb-check: (unsigned long) $0 = 42 // === CDB TESTS ================================================================================== -// FIXME: This does not currently work due to a bug in LLVM -// The fix for this is being tracked in rust-lang/rust#98295 -// // cdb-command: g -// // cdb-command: dx a!no_mangle_info::TEST -// // cdb-check: a!no_mangle_info::TEST : 0xdeadbeef [Type: unsigned __int64] +// cdb-command: g +// Note: LLDB and GDB allow referring to items that are in the same namespace of the symbol +// we currently have a breakpoint on in an unqualified way. CDB does not, and thus we need to +// refer to it in a fully qualified way. +// cdb-command: dx a!no_mangle_info::TEST +// cdb-check: a!no_mangle_info::TEST : 0xdeadbeef [Type: unsigned __int64] +// cdb-command: dx a!no_mangle_info::namespace::OTHER_TEST +// cdb-check: a!no_mangle_info::namespace::OTHER_TEST : 0x2a [Type: unsigned __int64] #[no_mangle] pub static TEST: u64 = 0xdeadbeef; +pub mod namespace { + pub static OTHER_TEST: u64 = 42; +} + pub fn main() { - println!("TEST: {}", TEST); // #break + println!("TEST: {}", TEST); + println!("OTHER TEST: {}", namespace::OTHER_TEST); // #break } From 4fd0a7e30a4f0fbc63d57f09eadf58517ef4ac69 Mon Sep 17 00:00:00 2001 From: Ryan Levick Date: Tue, 21 Jun 2022 14:53:55 +0200 Subject: [PATCH 4/7] Fix linux tests --- src/test/debuginfo/no_mangle-info.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/test/debuginfo/no_mangle-info.rs b/src/test/debuginfo/no_mangle-info.rs index 1e182eb7cc06f..fc40f130fcbf6 100644 --- a/src/test/debuginfo/no_mangle-info.rs +++ b/src/test/debuginfo/no_mangle-info.rs @@ -2,17 +2,17 @@ // === GDB TESTS =================================================================================== // gdb-command:run -// gdb-command:whatis TEST -// gdb-check:type = u64 -// gdb-command:whatis no_mangle_info::namespace::OTHER_TEST -// gdb-check:type = u64 +// gdb-command:p TEST +// gdb-check:$1 = 3735928559 +// gdb-command:p no_mangle_info::namespace::OTHER_TEST +// gdb-check:$2 = 42 // === LLDB TESTS ================================================================================== // lldb-command:run -// lldb-command:expr TEST +// lldb-command:p TEST // lldb-check: (unsigned long) $0 = 3735928559 -// lldb-command:expr no_mangle_test::namespace::OTHER_TEST -// lldb-check: (unsigned long) $0 = 42 +// lldb-command:p OTHER_TEST +// lldb-check: (unsigned long) $1 = 42 // === CDB TESTS ================================================================================== // cdb-command: g From f7bfd74f63730297eb7066a7c69a2bd775a7aa6a Mon Sep 17 00:00:00 2001 From: Ryan Levick Date: Tue, 21 Jun 2022 17:10:46 +0200 Subject: [PATCH 5/7] Add comment about issue caused with multiple statics --- src/test/debuginfo/no_mangle-info.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/debuginfo/no_mangle-info.rs b/src/test/debuginfo/no_mangle-info.rs index fc40f130fcbf6..0b058b0827e3a 100644 --- a/src/test/debuginfo/no_mangle-info.rs +++ b/src/test/debuginfo/no_mangle-info.rs @@ -27,6 +27,8 @@ #[no_mangle] pub static TEST: u64 = 0xdeadbeef; +// FIXME: uncommenting this namespace breaks the test, and we're not sure why +// pub static OTHER_TEST: u64 = 43; pub mod namespace { pub static OTHER_TEST: u64 = 42; } From d39bc1a7aa0f86ef86dc6c81256bdad5fc6e4342 Mon Sep 17 00:00:00 2001 From: Ryan Levick Date: Thu, 23 Jun 2022 12:02:07 +0200 Subject: [PATCH 6/7] Update FIXME comment Co-authored-by: Wesley Wiser --- src/test/debuginfo/no_mangle-info.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/debuginfo/no_mangle-info.rs b/src/test/debuginfo/no_mangle-info.rs index 0b058b0827e3a..3a261e197aa5d 100644 --- a/src/test/debuginfo/no_mangle-info.rs +++ b/src/test/debuginfo/no_mangle-info.rs @@ -27,7 +27,7 @@ #[no_mangle] pub static TEST: u64 = 0xdeadbeef; -// FIXME: uncommenting this namespace breaks the test, and we're not sure why +// FIXME(rylev, wesleywiser): uncommenting this item breaks the test, and we're not sure why // pub static OTHER_TEST: u64 = 43; pub mod namespace { pub static OTHER_TEST: u64 = 42; From 6cc3b412f827036e07c2e31a275722c452d069f2 Mon Sep 17 00:00:00 2001 From: Ryan Levick Date: Thu, 4 Aug 2022 11:46:30 +0200 Subject: [PATCH 7/7] Add min-gdb-version --- src/test/debuginfo/no_mangle-info.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/debuginfo/no_mangle-info.rs b/src/test/debuginfo/no_mangle-info.rs index 3a261e197aa5d..e22d368745f56 100644 --- a/src/test/debuginfo/no_mangle-info.rs +++ b/src/test/debuginfo/no_mangle-info.rs @@ -1,4 +1,5 @@ // compile-flags:-g +// min-gdb-version: 10.1 // === GDB TESTS =================================================================================== // gdb-command:run