我有这段代码:
struct Foo {
id: i32,
}
enum Bar {
Variant(Foo),
}
fn main() {
let x = Bar::Variant(Foo { id: 100 });
println!("set breakpoint here");
}
如何打印Foo
实例的内存地址?
答案 0 :(得分:4)
在最近的内置Rust调试支持的GDB中,您可以使用Rust-ish语法:
(gdb) p &x.0.id
$3 = (i32 *) 0x7fffffffe0f0
GDB知道枚举的哪个变体正在使用,因此x.0
命名Foo
中的x
(因为Variant
是一个元组)。 .id
命名i32
,&
获取地址。