gpt4 book ai didi

c - gdb 调试函数不在调用堆栈中

转载 作者:行者123 更新时间:2023-11-30 14:22:08 33 4
gpt4 key购买 nike

我有一个与此类似的代码片段:

int test( /* some arguments */)
{
ret = func(/* some arguments */)
if (ret < 0)
{
/* do this */
}

/* do this */

return ret;
}

函数func对于函数内的某些错误条件返回 -1。这种错误情况在 test 的 100 次中出现一次。函数被调用 - 所以我将断点放在 if (ret < 0) 中线。现在我想调试函数func()内部发生了什么。 test中遇到断点时该怎么办?在上述行运行。

最佳答案

我会在

处放置一个断点
return -1;

在函数本身内。按照您所做的方式,函数的堆栈框架已经被破坏了。如果您可以移动代码指针,您可以使用相同的参数再次运行该函数,但如果该函数有副作用,它可能不会以相同的方式使用react。我不知道该怎么做,也许它需要 jump命令。

关于c - gdb 调试函数不在调用堆栈中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14052248/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com