You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调试Rust时如何不修改代码友好查看Vec<T>或HashMap指针指向的内容

调试Rust时如何不修改代码友好查看Vec或HashMap指针指向的内容

我太懂这种调试时的憋屈了!就像你贴的这段代码:

fn main() { 
    let mut _tmp : Vec<String> = vec![ String::from("test") ]; 
    let some_ref = &_tmp; 
    println!("{:#?}", some_ref);//breakpoint here 
    println!("{:#?}", _tmp) 
}

断点打在println!("{:#?}", some_ref);这行时,在VS Code的Local窗口里看some_ref,只能看到一堆(?),根本看不到Vec里的实际内容,又不想为了临时看个值就改代码加clone重新编译——毕竟调试大项目的时候,编译一次太费时间了。

给你分享两个实用的小技巧,完全不用改代码:

  • 用Watch窗口可视化查看:
    在VS Code的调试面板里找到Watch区域,点击加号,输入*some_ref,回车之后就能像查看普通Vec变量一样展开这个引用指向的内容了,元素、长度、容量这些信息都能直观浏览,比在Debug Console敲命令舒服多了。如果是&HashMap这类容器引用,同样输入*your_hashmap_ref就行,嵌套结构也能逐层展开。

  • 优化Debug Console的查看体验:
    你已经发现用p *some_ref能在Debug Console里看到内容,但其实可以加个格式化参数让输出更美观,比如用p -r *some_ref(如果用的是LLDB调试器),这样输出会带缩进和层级,可读性会提升不少,不过还是不如Watch窗口的可视化浏览方便。

这些方法都是在调试会话里临时操作,完全不需要修改源代码,特别适合你那种“就在调试现场,只想快速看值”的场景。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 10:49:33