Messages in this thread |  | | | Date | Tue, 04 Jan 2005 16:21:44 +0000 | | From | Paulo Marques <> | | Subject | Re: Let me know EIP address |
| |
linux-os wrote: > On Tue, 4 Jan 2005, Lethalman wrote: > >> I'm trying to get the EIP value from a simple program in C but i don't >> how to do it. I need it to know the current address position on the >> code segment. >> >> main() { >> long *eip; >> asm("mov %%eip,%0" : "=g"(eip)); >> printf("%p\n", eip); >> } >> >> Unfortunately EIP is not that kind of register :P >> Does anyone know how to get EIP? >> > > You get the offset of a label, i.e., "foo:\t movl $foo,%0\n" in the asm > code.
Or use a gcc extension, so that you don't have to write assembly code:
int main(int argc, char *argv[]) { address: printf("this is my address %p\n", &&address); return 0; } -- Paulo Marques - www.grupopie.com
"A journey of a thousand miles begins with a single step." Lao-tzu, The Way of Lao-tzu
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |