如何断点到函数的return
昨天群友问了个问题:有一个代码行很多的复杂函数,内部有很多return,单步调试很慢,如何快速找到哪一行return了?
例如代码:
void foo() {
int i = arc4random() %100;
if (i > 30) {
if (i < 40) {
return;
}
if (i > 77) {
return;
}
if (i < 66) {
return;
}
}
switch (i) {
case 0:
return;
case 1:
return;
case 2:
return;
case 3:
return;
case 4:
return;
default:
return;
}
}
int main(int argc, const char * argv[]) {
foo();
return 0;
}
假设foo是个很长很复杂有很多return的函数,如何知道是通过哪一行return的呢?
可以使用lldb的断点
breakpoint set -p return
或者
br set -p return
首先在foo第一行加断点
断点触发后,控制台输入 br set -p return
然后continue,就会断点到函数return的那一行了。
很有趣~
大家喜欢的话,就关注下订阅号,以示鼓励: