debugging - 如何检查GDB中函数的返回值?

标签 debugging cross-platform gdb return-value

假设返回值分配给变量,是否可以检查 gdb 中函数的返回值?

最佳答案

我想有更好的方法可以做到这一点,但是 finish命令执行直到当前堆栈帧被弹出并打印返回值 - 给定程序

int fun() {
    return 42;
}

int main( int argc, char *v[] ) {
    fun();
    return 0;
}

你可以这样调试它——

(gdb) r
Starting program: /usr/home/hark/a.out 

Breakpoint 1, fun () at test.c:2
2               return 42;
(gdb) finish
Run till exit from #0  fun () at test.c:2
main () at test.c:7
7               return 0;
Value returned is $1 = 42
(gdb) 

finish 命令可以缩写为 fin。不要使用 f,它是 frame 命令的缩写!

关于debugging - 如何检查GDB中函数的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/267674/

相关文章:

c - 静态变量的奇怪情况仅出现在 gcc 的调试版本中

perl - %INC 的键和值是否依赖于平台?

python - GDB:如何从内置 python 更改便利变量

c - 确定预处理器中的优化级别?

c++ - 我如何得出哪些成员在 gdb 中处于什么偏移量?

c# - Intellisense 未显示代码隐藏中的新控件

c - GDB 无法插入断点,无法访问地址 XXX 处的内存?

c++ - 删除指针 vector 时调试断言失败 C++

gcc - 构建 GCC 交叉编译器(从 "Linux"到 "Windows")

c++ - 创建可部署的 CMake 动态 SDL2 应用程序