Я пытаюсь получить имя вызываемой функции в программе на Си.
Например, это мой код:
void toto(void)
{
printf("toto\n");
}
void tutu(void)
{
printf("tutu\n");
}
void mdr(void)
{
printf("tutu\n");
printf("tutu\n");
printf("tutu\n");
printf("tutu\n");
}
int main(int ac, char **av)
{
toto();
tutu();
mdr();
}
Я хочу получить только результаты:Main (), toto (), пачка () и mdr ().Но проблема в том, что когда я использую Libelf, я извлекаю некоторую информацию из таблицы символов, но она дает мне названные функции и многое другое, как в этом примере:
...
57: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@@GLIBC_
58: 0000000000401148 47 FUNC GLOBAL DEFAULT 13 mdr
59: 0000000000401126 17 FUNC GLOBAL DEFAULT 13 toto
60: 0000000000404020 0 NOTYPE GLOBAL DEFAULT 23 __data_start
61: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
62: 0000000000402008 0 OBJECT GLOBAL HIDDEN 15 __dso_handle
63: 0000000000401137 17 FUNC GLOBAL DEFAULT 13 tutu
64: 0000000000402000 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used
65: 00000000004011a0 101 FUNC GLOBAL DEFAULT 13 __libc_csu_init
66: 0000000000404028 0 NOTYPE GLOBAL DEFAULT 24 _end
67: 0000000000401070 5 FUNC GLOBAL HIDDEN 13 _dl_relocate_static_pie
68: 0000000000401040 47 FUNC GLOBAL DEFAULT 13 _start
69: 0000000000404024 0 NOTYPE GLOBAL DEFAULT 24 __bss_start
70: 0000000000401177 37 FUNC GLOBAL DEFAULT 13 main
71: 0000000000404028 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__
72: 0000000000401000 0 FUNC GLOBAL HIDDEN 11 _init
Так как я могутолько восстановить мои вызванные функции?Еще раз спасибо за помощь