Как использовать gcc для получения имени функции и номера строки исходного файла C/C++
Вот папка исходного кода проекта для c/c++, я хочу написать небольшой и быстрый инструмент/скрипт, чтобы получить имя файла, номер строки и имя функции для всех исходных файлов .
Например, я хочу, чтобы он выводился так, как показано ниже:
./ниц/а.линия c 1500 вызвать функцию func1(); ./ниц/а.линия c 1600 называть функцию func1();
./ниц/а.c строка 1700 вызвать функцию func2(); ./в src/б.линия c 1700 вызвать func3();
...
например, вот контекст tmp. c,я хочу, чтобы он проанализировал файл,
#include <stdio.h> #include <string.h> int main (){ char dest1[4]; char dest2[4]; char *src="Sample string"; strcpy (dest2,strcpy(dest1,src)); printf ("src1: %s\ndest: %s\n",src,dest1); return 0; }
и вывод вроде :
. / tmp. c строка 7 вызов strcpy
. / tmp. c строка 8 вызов printf
Как это сделать с помощью каких-либо инструментов или языка? лучше всего с gcc.
Что я уже пробовал:
получить имя вызова функции и номер строки для файла.
Richard MacCutchan
Вам нужно написать анализатор кода/парсер. Google для этих условий, и вы найдете много информации.
Member 12712046
Спасибо за ваш ответ.Я думаю, было бы много работы, чтобы сделать это.Есть ли какой-нибудь способ сделать это простым и быстрым способом, например, основываться на gcc/ctags/cscope/... еще какие-нибудь инструменты?
Richard MacCutchan
Да, это будет много работы. Однако, если вы можете найти какой-то открытый исходный код, который уже выполняет часть работы, вы всегда можете адаптировать его.