我的项目包含许多文件。
有时我需要知道源代码中定义(实现)特定函数的位置。我目前所做的是在源文件中搜索函数名称,这非常耗时。
我的问题是:有没有更好的方法(编译器/链接器标志)在源文件中找到该函数定义?....由于链接器已经解决了所有这些引用已经解决的所有问题。
我希望方法比在调试器中进入函数调用更好,因为函数可以隐藏在很多调用中。
答案 0 :(得分:2)
从手册:
允许搜索以下代码:
包含文件的文件
基于Curses(文本屏幕)
A"截图":
C symbol: atoi
File Function Line
0 stdlib.h <global> 86 extern int atoi (const char *nptr);
1 dir.c makefilelist 336 dispcomponents = atoi(s);
2 invlib.c invdump 793 j = atoi(term + 1);
3 invlib.c invdump 804 j = atoi(term + 1);
4 main.c main 287 dispcomponents = atoi(s);
5 main.c main 500 dispcomponents = atoi(s);
6 stdlib.h atoi 309 int atoi (const char *nptr) __THROW
Find this C symbol:
Find this global definition:
Find functions called by this function:
Find functions calling this function:
Find this text string:
Change this text string:
Find this egrep pattern:
Find this file:
Find files #including this file:
答案 1 :(得分:0)
如果导出了该符号,则可以连接objdump
或nm
并查看.o
个文件。这对于在头文件中查找内容没有用。
我的建议是将你的项目放在git
(具有许多其他优点)并使用git grep
,它只查看git版本控制下的那些文件(意味着你没有{{1}对象文件和其他无关紧要)。 grep
也很好而且很快。