如何在CLion 2024.1中显示未赋值的函数返回值?
如何在CLion 2024.1中显示未赋值的函数返回值
这个功能的启用和查看方式取决于你使用的调试器(GDB或LLDB),以下是分场景的操作步骤:
针对GDB用户
启用返回值捕获
- 打开
File > Settings > Build, Execution, Deployment > Debugger > Data Views > C/C++ - 勾选**"Show return values of functions",若需要显示所有未赋值的返回值,同时勾选"Show values for all calls"**(默认仅显示栈顶函数的返回值)。
- 打开
查看返回值
- 调试时,当函数执行完毕且返回值未被赋值,该值会自动出现在调试面板的Frames区域(调用栈面板),对应栈帧下方会显示
Return value: [具体值]。 - 也可以手动在监视窗口添加寄存器表达式:x86_64架构用
$rax,ARM架构用$r0,直接查看寄存器中的返回值。
- 调试时,当函数执行完毕且返回值未被赋值,该值会自动出现在调试面板的Frames区域(调用栈面板),对应栈帧下方会显示
针对LLDB用户
启用返回值捕获
- 打开
File > Settings > Build, Execution, Deployment > Debugger > LLDB - 勾选**"Show return values"**选项。
- 打开
查看返回值
- 调试时,返回值会显示在调用栈帧的详情区域;也可在调试控制台输入
frame variable --show-return-value,手动查看当前栈帧的返回值。
- 调试时,返回值会显示在调用栈帧的详情区域;也可在调试控制台输入
常见注意事项
- 你之前找错了设置路径:相关选项不在
Debugger根目录下,而是在Debugger > Data Views > C/C++(GDB)或Debugger > LLDB(LLDB)子菜单内。 - 只有当函数执行完毕、程序停在返回后的断点时,返回值才会显示——函数执行过程中无法查看。
- 编译器优化可能导致返回值无法被捕获,建议调试时关闭优化(将CMake/Makefile中的
-O参数改为-O0)。
内容的提问来源于stack exchange,提问作者einpoklum
相关产品推荐
相关产品推荐

