想用GDB去断一个类里的函数,发现不行,被编译器自动转成了inline了,
查了一些资料得知了会被自动变成inline函数的条件
- 有可能会被inline的情况
- 在函数定义的时候,加上inline关键字
- 函数较短,没有循环或递归,用-O2或-O3编译
- 类成员函数,在类定义的时候,直接写了函数体,而且函数体较短
- 肯定不会被inline的情况(只要满足任一条件,不管上足上面多少个条件,都不会inline)
- 直接或间接递归调用到了本身
- 函数内有循环
- 函数较长(具体多长我暂时不清楚,好像是和一个-finline-limit参数有关)
- 函数体的定义在当前函数的后面(也就是先声明,后使用,最后定义的函数)
- 用gcc编译时,没有加上任何-O参数
- 用了-no-inlie参数
想断的函数属于3,而且就是一个简单的return类变量。