Как получить размер функции C изнутри программы на C или встроенной сборки?
Suppose I have a function like below:
# cat 003.c
int foo(int a, int b)
{
return a+b;
}
And compile it like this:
gcc -S 003.c
The gets the following assembly result:
.file "003.c"
.text
.globl foo
.type foo, @function
foo:
.LFB2:
pushq %rbp
.LCFI0:
movq %rsp, %rbp
.LCFI1:
movl %edi, -4(%rbp)
movl %esi, -8(%rbp)
movl -8(%rbp), %edx
movl -4(%rbp), %eax
addl %edx, %eax
leave
ret
.LFE2:
.size foo, .-foo /* size of the function foo, how to get it?*/
Последняя строка выше получит размер функции. Где компилятор хранит размер? Могу ли я получить размер функции каким-либо образом в моей программе на языке C, используяC or inline asm?