如何使用 GDB 检查函数调用的返回位置?

How to use GDB to check where a function calls return?

提问人:Icelightz 提问时间:9/21/2023 更新时间:9/21/2023 访问量:21

问:

我有一个名为 test_linked_list() 的函数,它使用一系列 if 语句测试数据结构。如果测试失败,它将调用返回 0。

// ie.
test_linked_list() {
    if(!insert_end(l,10)) 
        return 0;
    // ... more tests
}

我想知道哪个测试失败。除了在 gdb 中手动设置断点并用于查看调用的断点之外,还有其他方法吗?例如,GDB 脚本?nextreturn 0

函数 调试 测试 返回 gdb

评论


答:

1赞 Employed Russian 9/21/2023 #1

还有别的办法吗?

一种简单的方法,可以将 UNIX 约定 on success、和 、 等用于不同的失败。return 0return 1return 2

请注意,编译器 ~总是对每个函数使用一个函数;没有“哪个返回”——一旦函数被编译,它们都是相同的。return