繁体   English   中英

使用 rust-gdb 进行调试时,如何进入在返回值中调用的函数?

[英]How do I step into a function called in a return value when debugging with rust-gdb?

在以下代码中:

match fnA(size) {
    Some(arr) => SomeBlock::new(size, &arr, false).as_ptr().add(1) as *mut c_void,
    None => ptr::null::<c_void>() as *mut c_void,
}

我想使用rust-gdb进入SomeBlock::new(size, &arr, false) 当我正常运行它时,我能够进入fnA ,但是如果我在与Some(arr)联机时尝试单步执行, gdb只会运行程序的其余部分并退出。

我知道我可以直接在SomeBlock::new插入断点,但我很好奇是否有更SomeBlock::new方法来做到这一点。

根据关于 Rust的 GDB文档

Rust 表达式评估器不支持“类似语句”的表达式,例如ifmatch ,或 lambda 表达式。

似乎您无法进入match表达式中的任何内容。 请注意,您可以在fnA的输出在 match 块内匹配之前对其进行评估,因此您可以进入fnA

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM