如何使用GDB检查函数在哪里调用了return?

问题描述 投票:0回答:1

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

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

我想知道哪个测试失败了。除了在 gdb 中手动设置断点并使用

next
查看调用了哪个
return 0
之外,还有其他方法吗?例如,GDB 脚本?

function debugging testing return gdb
1个回答
0
投票

还有别的办法吗?

一种简单的方法,使用 UNIX 约定

return 0
表示成功,使用
return 1
return 2
等表示不同的失败。

请注意,编译器〜始终为每个函数使用 single

return
;不存在“哪个返回”——一旦函数被编译,它们都是相同的。

© www.soinside.com 2019 - 2024. All rights reserved.