Mailing List del Fortunae LUG ============================= > L'unico che legge i tuoi post, li commenta, stimola la ricerca, etc, lo > ringrazi cosi' ? :-) Sta sviolinata potevi risparmiartela... :) > Non riesco a trovare una spiegazione per quell'arrotondamento a 16, mentre > credo di avere ragione sul discorso del linker che mette il puntatore a main > nella call: il tuo eseguibile e' un elf, il dynlink lo carica e sostituisce > tutti i riferiementi assoluti, dalla apposita tabella. > Perche' il main non dovrebbe esserci ? Lo sai per certo ? Secondo te parlo a vanvera?:) Comunque hai commesso 2 "errori" (se non 3). 1) Non usi gdb (errore passabile) 2) Non hai pensato al fatto che se sullo stack vengono pushati parametri diversi da quelli del main... è ovvio pensare che non verrà chiamato il main. (che senso ha chiamare il main se prima pushi dei parametri del tutto diversi da quelli che dovresti pushare?) ( 3) non ti fidi di me ) Cmq dumpando con gdb si può leggere: Dump of assembler code for function _start: 0x8048310 <_start>: xor %ebp,%ebp 0x8048312 <_start+2>: pop %esi 0x8048313 <_start+3>: mov %esp,%ecx 0x8048315 <_start+5>: and $0xfffffff0,%esp 0x8048318 <_start+8>: push %eax 0x8048319 <_start+9>: push %esp 0x804831a <_start+10>: push %edx 0x804831b <_start+11>: push $0x8048440 0x8048320 <_start+16>: push $0x8048298 0x8048325 <_start+21>: push %ecx 0x8048326 <_start+22>: push %esi 0x8048327 <_start+23>: push $0x80483f0 0x804832c <_start+28>: call 0x80482f0 <__libc_start_main> 0x8048331 <_start+33>: hlt 0x8048332 <_start+34>: mov %esi,%esi End of assembler dump. Come vedi non chiama il main ma chiama __libc_start_main che prima di chiamare il main chiama una cinquantina di funzioni (2Kb di asm). Mi devi una pizza. (tonno e cipolle ovvio) Simon. -- <simon> ho capito una cosa stasera, non devo uscire quando non ho voglia di uscire...