Ferramenta para rastrear chamadas de função local no Linux

Estou à procura de uma ferramenta comoltrace outraço que pode rastrear funções definidas localmente em um executável. O ltrace rastreia apenas as chamadas de biblioteca dinâmica e o rastreio rastreia apenas as chamadas do sistema. Por exemplo, dado o seguinte programa C:

#include <stdio.h>

int triple ( int x )
{
  return 3 * x;
}

int main (void)
{
  printf("%d\n", triple(10));
  return 0;
}

Executando o programa comltrace mostrará a chamada paraprintf já que essa é uma função de biblioteca padrão (que é uma biblioteca dinâmica no meu sistema) estrace mostrará todas as chamadas do sistema a partir do código de inicialização, as chamadas do sistema usadas para implementar printf e o código de desligamento, mas quero algo que me mostre que a funçãotriple foi chamado. Supondo que as funções locais não tenham sido delineadas por um compilador otimizador e que o binário não tenha sido removido (símbolos removidos), existe uma ferramenta que pode fazer isso?

Editar

Alguns esclarecimentos:

Não há problema se a ferramenta também fornecer informações de rastreamento para funções não locais.Não quero recompilar o (s) programa (s) com suporte para ferramentas específicas, as informações do símbolo no executável devem ser suficientes.Eu seria muito legal se pudesse usar a ferramenta para anexar aos processos existentes, como posso com o ltrace / strace.

questionAnswers(13)

yourAnswerToTheQuestion