我想在rust-gdb控制台中打印一个函数的结果。
fn.rs
有什么方法可以显示函数的结果吗?
我正在使用Rust 1.27.0和GDB 7.11。我直接编译fn.rs,没有模块。我尝试了这些额外的命令:
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() 是禁用的吗?
fn
的模块中:你尝试过使用完整路径(例如fn::one()
)打印定义吗?如果不确定路径,请显示函数列表。 - Boiethiosrustc
和rust-gdb
版本的信息。当我运行您发布的内容时,gdb
确实按预期显示$1 = 1
。 - mcartonprint ::module::one()
,结果为$1 = 1
。 - Tim Diekmannfn.rs
。 - Shepmaster(gdb) p one $1 = 1 (gdb) p one() 要调用的函数的数据类型无效。 (gdb) p ::module::one() 表达式中有语法错误,附近为 `::one()'。 (gdb) p ::module::one 表达式中有语法错误,附近为 `::one'。 (gdb) p fn::one() 命名空间“fn”中没有符号“one”。
@mcarton 谢谢,你使用哪个版本? - fukatani