Ferramenta para rastrear chamadas de biblioteca no Linux / ARM

8

Estou procurando uma ferramenta que permita rastrear chamadas para funções em bibliotecas compartilhadas no Linux / ARM. Basicamente, desejo poder especificar uma linha de comando e permitir que essa ferramenta produza um registro das funções de biblioteca chamadas e dos argumentos passados. Eu imagino que alguma forma de ligação de função possa ser usada para isso.

Estou ciente de ltraceque fornece exatamente a funcionalidade necessária. No entanto, ltracenão funciona para mim, pois:

  • frequentemente segfaults ao rastrear programas mais complexos.
  • é muito lento.

Estou procurando uma alternativa mais robusta. A velocidade é boa, mas não é a minha principal preocupação. Primeiramente, eu gostaria de ter um meio de rastrear chamadas de biblioteca que possam analisar qualquer programa (não evasivo).

O Sysdig também não está funcionando no ARM, e a porta do dtrace ainda está funcionando na versão beta apenas no NetBSD.

Alguém conhece essa ferramenta em um estado utilizável?

j0ker
fonte

Respostas:

1

Você já viu o LTTng ? É uma estrutura de rastreamento kernelspace / userspace que funciona em várias arquiteturas, incluindo ARM.

Você pode configurar o rastreamento para o código do espaço do usuário com LTTng-UST . Mas você teria que recompilar as bibliotecas compartilhadas que deseja rastrear, com seus pontos de rastreamento LTTng adicionados.

Aqui está um guia dos documentos oficiais de lttng sobre como configurar o rastreamento do espaço do usuário: Rastreando seu próprio aplicativo do usuário

Não sei se isso seria útil no seu caso, mas também há um encadeamento de Stack Overflow na compilação / instalação de lttng em plataformas incorporadas (incluindo ARM): Como faço para construir e implantar o LTTng em um sistema Linux incorporado?

J. Taylor
fonte