我有这段代码:
struct Foo {
id: i32,
}
enum Bar {
Variant(Foo),
}
fn main() {
let x = Bar::Variant(Foo { id: 100 });
println!("set breakpoint here");
}
如何打印Foo
实例的内存地址?
(gdb) p &x.0.id
$3 = (i32 *) 0x7fffffffe0f0
GDB知道正在使用枚举的哪个变量,因此x.0
表示x
中的Foo
(因为Variant
是一个元组)。.id
表示i32
,&
表示取地址。
PascalCase
来表示结构体、枚举和枚举变量。由于类型的大小写对问题并不重要,我已经将它们更改了,这也提高了代码的可读性。 - Shepmaster