如何浏览GDB或LLDB中的Rust枚举字段?

时间:2017-04-19 13:40:40

标签: gdb rust lldb

我有这段代码:

struct Foo {
    id: i32,
}
enum Bar {
    Variant(Foo),
}

fn main() {
    let x = Bar::Variant(Foo { id: 100 });
    println!("set breakpoint here");
}

如何打印Foo实例的内存地址?

1 个答案:

答案 0 :(得分:4)

在最近的内置Rust调试支持的GDB中,您可以使用Rust-ish语法:

(gdb) p &x.0.id
$3 = (i32 *) 0x7fffffffe0f0

GDB知道枚举的哪个变体正在使用,因此x.0命名Foo中的x(因为Variant是一个元组)。 .id命名i32&获取地址。