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

Hombre, en el stack tienes la dirección de retorno, pero más que C te estarías metiendo en assembler jat

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...

m__x_ escribió:

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 backtrace

info libc backtrace