Можно ли узнать типы имен аргументов и переменных функции во время выполнения в программе на C? Например, если у меня есть функция:
int abc(int x, float y , somestruct z ){
char a;
int b ;
}
Могу ли я узнать внутри этой функции abc()
, как называются аргументы и переменные ie, в данном случае это x
, y
, z
, a
, b
, и они относятся к типу int
, float
, somestruct
, char
, int
.
Скажите, есть ли еще одна функция:
float some_func(specialstruct my_struct, int index){
}
Я должен знать, что имена аргументов my_struct
, index
, а типы specialstruct
, int
.
Мне нужна эта информация во время выполнения?
У меня есть доступ к базовому указателю и адресу возврата, могу ли я получить необходимую информацию, используя указатель выше.
Мне удалось извлечь имя функции, используя адрес возврата и функцию dladdr()
.
Я вижу, GDB
делает это, значит, можно ли извлечь эту информацию?
gdb
использовать отладочную информацию, созданную компилятором. См. eli.thegreenplace.net/ 2011/02/07 / - person Mathieu   schedule 15.09.2016