Como descobrir quem é o chamador de um método ou função? [duplicado]

Esta questão já tem uma resposta aqui:

Como descobrir quem chamou um método? 9 respostas

Eu quero escrever uma função de depuração ou método que ajudará a imprimir informações úteis. Quando é chamado, preciso:

o endereço de memória do objeto de chamada (se chamado por um objeto)a assinatura do método do chamador (ou o nome do método), ou o nome da funçãoo nome da classe que possui esse método ou função

É possível obter essa informação sem passar por um monte de parâmetros?

Eu quero fazer algo como:

debug();

que então entra em todos os métodos e funções, e ajuda a imprimir informações úteis sobre o que está acontecendo.

questionAnswers(5)

yourAnswerToTheQuestion