J'ai dit une ânerie : la fonction main correspond à la section .plt.
PK
Le mer. 26 oct. 2022 à 14:44, Patrice Karatchentzeff
<patrice.karatchentzeff@???> a écrit :
>
> Salut,
>
> Quand gcc compile un programme en C, il semble qu'il garde le nom de
> main du C pour l'assembleur.
>
> Soyons follement original :
>
> #include <stdio.h>
>
> int main(void) {
> printf("Hello, world!\n");
> return 0;
> }
>
> donne *en assembleur* (gcc -s) :
>
> (...)
> .text
> LC0:
> .ascii "Hello, world!\12\0"
> .globl _main
> .def _main; .scl 2; .type 32; .endef
> _main:
> pushl %ebp
> movl %esp, %ebp
> etc.
>
> Donc au début du programme, le main est bien référencé en _main.
>
> Dont acte.
>
> Pourtant, si je compile et que je désassemble le binaire compilé, je
> ne retrouve pas cette fonction. Au mieux, j'ai un .init dedans qui
> semble être la même chose.
>
> J'ai fait un grep dans toutes les gnuteries de mon système et c'est pareil.
>
> Alors, j'ai deux questions :
>
> * main = .init ?
> * est-ce une règle ? Je ne trouve rien sur le net à ce sujet...
>
> Merci de vos lumières,
>
> PK
>
>
> --
> |\ _,,,---,,_ Patrice KARATCHENTZEFF
> ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff@gmail.com
> |,4- ) )-,_. ,\ ( `'-'
> '---''(_/--' `-'\_)
--
|\ _,,,---,,_ Patrice KARATCHENTZEFF
ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff@gmail.com
|,4- ) )-,_. ,\ ( `'-'
'---''(_/--' `-'\_)