Como saber qual função chamou outra

Quero saber se existe alguma maneira de saber onde a função atualmente em execução foi chamada, ou seja, em qual arquivo e linha. Estou usando a linguagem C e estou procurando algo semelhante às macros __FUNCTION__, __LINE__ ou __FILE__.