Saber si una función ha sido llamada desde main
Publicado: 10 Enero, 2011 - 15:48 Saber si una función ha sido llamada desde main
Hola,
¡Cuánto tiempo sin pasar por aquí!
Una preguntilla,
¿Hay alguna forma estandarizada en C de saber desde qué función ha sido llamada una función? Me encuentro en la
necesidad de tener que averiguar (a ser posible sin pasar un argumento identificador) si una función es llamada desde la función principal main() de un programa o desde otra función cualquiera.
Gracias
- Inicie sesión o regístrese para enviar comentarios
- 521 lecturas


Hombre, en el stack tienes la dirección de retorno, pero más que C te estarías metiendo en assembler
Puedes usar gdb: pones un breakpoint en la función que es llamada, y cuando lo alcanzas, haces un backtrace para ver la pila de llamadas (call stack). Aquí tienes un pequeño manual de gdb.
Siempre tienes la opción de meter en un log cada llamada...
Puedes usar gdb: pones un breakpoint en la función que es llamada, y cuando lo alcanzas, haces un backtrace para ver la pila de llamadas (call stack). Aquí tienes un pequeño manual de gdb.
+1
Agregar información de depuración, break en la función desea y bt para ver la pila de llamadas.
Hasta donde yo conozco no existe una forma estándar.
Si utilizas la librería glibc puedes realizar lo que pretendes haciendo uso de las capacidades de backtrace incluidas en la librería.
Para más información,
man backtraceinfo libc backtrace