Мне интересно, как я могу эффективно найти использование функции / структуры в файлах, используя комбинацию find & grep
.
Например, у меня есть исходный код для git
на моей машине. Если вы посмотрите на commit.h
, вы увидите, что структура commit
определена как,
struct commit {
struct object object;
void *util;
unsigned int indegree;
unsigned long date;
struct commit_list *parents;
struct tree *tree;
char *buffer;
};
Мне интересно узнать, откуда эта структура инициализируется и как они инициализируют буфер. Сначала я попробовал,
grep -rn "(struct commit)" .
Это дало мне файл с инициализацией этой структуры. Теперь мне нужно выяснить, где инициализируется переменная buffer
, которая является членом этой структуры.
grep -rn "buffer" .
возвращает много результатов и трудно выяснить, где он используется.
Так что мне интересно, как вы эффективно узнаете об использовании символа? Я не говорю о том, что предоставляет IDE, а использует стандартные инструменты linux, такие как grep
и find
. Как вам удается взломать большую кодовую базу и понять, как она работает?