如何打印在rust-gdb中调用Rust函数的结果?

时间:2018-08-16 14:08:28

标签: rust gdb

我想在rust-gdb控制台中打印函数的结果。

fn.rs

fn one() -> i32 {
    1
}

fn main() {
    println!("{}", one());
}

控制台

rustc -g ./fn.rs
rust-gdb ./fn
>>> b 6
>>> run
>>> print one()
Invalid data type for function to be called.

有什么方法可以显示功能结果?

我正在使用Rust 1.27.0和GDB 7.11。我直接在编译fn.rs;没有模块。我尝试了以下其他命令:

(gdb) p one 
$1 = 1 
(gdb) p one() 
Invalid data type for function to be called. 
(gdb) p 
::module::one() A syntax error in expression, near ::one()'. 
(gdb) p 
::module::one A syntax error in expression, near ::one'. 
(gdb) p 
fn::one() No symbol "one" in namespace "fn".

p one()已禁用?

1 个答案:

答案 0 :(得分:1)

我尝试了gdb == 8.11。 效果很好。

(gdb) p one
$1 = {fn () -> i32} 0x55555555a5a0 <fn::one>
(gdb) p one()
$2 = 1

谢谢大家。 (尤其是@mcarton)