[英]How to set conditional breakpoint on return statement globally?
我的代码充满了以下功能:
bool f_i()
{
if (!f_0()) {
return false;
}
if (!f_1()) {
return false;
}
// ...
if (!f_n()) {
return false;
}
return true;
}
// etc...
在执行的某个步骤中,一些被调用者可以返回false
,而false
传播通过所有调用者。 此刻很难编写错误消息(代码快速更改)。 在调试期间,在每次return false;
之前有错误消息return false;
。
是否可以使用GDB
在全局return
语句上设置条件(条件:比如,函数返回false
)断点?
在某些执行步骤中,一些被调用者可以返回false
据我所知,你想找到第一个在f_i()
返回false
函数。 您可以使用反向调试 。 您可以:
完成当前帧执行
(gdb)fin
如果返回值为false
,则向后退一步
(gdb)反向步骤
如果需要,您可以继续向后,更深入地进行false
传播呼叫
(gdb)反向鳍
(gdb)反向步骤
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.