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

如何在Rust gdb中打印调用Rust函数的结果?,rust,gdb,Rust,Gdb,我想在gdb控制台中打印函数的结果 fn.rs 控制台 rustc-g./fn.rs 锈蚀gdb。/fn >>>b 6 >>>跑 >>>打印一个() 要调用的函数的数据类型无效。 是否有任何方法显示功能结果 我使用的是Rust 1.27.0和GDB 7.11。我直接编制fn.rs;没有模块。我尝试了以下附加命令: (gdb)p one $1 = 1 (gdb)p one() 要调用的函数的数据类型无效。 (gdb)p ::module::one()表达式中的语法错误,靠近::one()。 (

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

fn.rs

控制台

rustc-g./fn.rs
锈蚀gdb。/fn
>>>b 6
>>>跑
>>>打印一个()
要调用的函数的数据类型无效。
是否有任何方法显示功能结果

我使用的是Rust 1.27.0和GDB 7.11。我直接编制fn.rs;没有模块。我尝试了以下附加命令:

(gdb)p one
$1 = 1 
(gdb)p one()
要调用的函数的数据类型无效。
(gdb)p
::module::one()表达式中的语法错误,靠近::one()。
(gdb)p
::模块::一表达式中的语法错误,靠近::一。
(gdb)p
fn::one()命名空间“fn”中没有符号“one”。
p one()是禁用的吗?

我试过gdb==8.11。 它工作得很好

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

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

你是在发布模式下编译的吗?@Boiethios
rustc-g./fn.rs
你在一个模块中
fn
:你是否尝试用完整路径打印定义(即
fn::one()
)?如果您不确定路径,请显示函数列表。了解有关您正在运行的平台以及
rustc
rust gdb
版本的更多信息可能会有所帮助。当我完全按照您发布的内容运行时,
gdb
会按预期显示
$1=1
。@Boiethios这里没有模块。OP直接编译文件
fn.rs
(gdb) p one
$1 = {fn () -> i32} 0x55555555a5a0 <fn::one>
(gdb) p one()
$2 = 1