代码改变世界

source insight无法识别函数定义

2022-07-22 15:26  dreamboy2000  阅读(969)  评论(0编辑  收藏  举报

在使用source insight 4.0走读google glog代码过程中发现,部分函数的定义比如utilities.cc的InitGoogleLoggingUtilities和ShutdownGoogleLoggingUtilities无法被source insight识别,导致走读代码、函数跳转不顺手。

查询资料知道源代码中部分宏定义会让source insight无法区分函数定义和宏定义,导致source insight认为宏定义是函数,而函数定义是其他的。根据这个描述,在utilities.cc中发现使用了很多_START_GOOGLE_NAMESPACE_和_END_GOOGLE_NAMESPACE_,推测这个宏定义是导致问题的原因。

解决方法:source insight提供了一个配置文件c.tom,可将宏定义添加到这个文件里面,让source insight解析代码时,着重注意哪些是宏定义,添加完之后重启source insight发现函数定义被正确识别,问题解决。

文件名:

选项;Misc下面:

将代码中的宏定义添加进去:

重新打开source insight发现函数定义被正确识别:

最后:不同的源代码,导致无法识别函数定义的宏定义不同,要结合具体情况添加。