5.5.12. Compiladores e ferramentas de desenvolvimento


Funções sintéticas geradas pelo GCC confundem SystemTap

A otimização do GCC pode gerar funções sintéticas para cópias parcialmente simplificadas de outras funções. Ferramentas como SystemTap e GDB não podem distinguir estas funções sintéticas das funções reais. Como conseqüência, o SystemTap pode colocar sondas em ambos os pontos de entrada de funções sintéticas e reais, e assim registrar múltiplos acertos de sondas para uma única chamada de função real.

Para contornar este problema, os scripts do SystemTap devem ser adaptados com medidas como a detecção de recorrência e a supressão de sondas relacionadas a funções parciais simplificadas. Por exemplo, um script

sonda kernel.function({\i1}"can_nice}").call {\i}
Copy to Clipboard Toggle word wrap

pode tentar evitar o problema descrito a seguir:

global in_can_nice%

probe kernel.function("can_nice").call {
  in_can_nice[tid()] ++;
  if (in_can_nice[tid()] > 1) { next }
  /* code for real probe handler */
}

probe kernel.function("can_nice").return {
  in_can_nice[tid()] --;
}
Copy to Clipboard Toggle word wrap

Observe que este roteiro de exemplo não leva em conta todos os cenários possíveis, tais como a falta de kretprobes ou kretprobes, ou a verdadeira repetição pretendida.

(BZ#1169184)

A ferramenta ltrace não informa as chamadas de função

Devido a melhorias no endurecimento binário aplicadas a todos os componentes RHEL, a ferramenta ltrace não pode mais detectar chamadas de função em arquivos binários provenientes de componentes RHEL. Como conseqüência, a saída ltrace está vazia porque não relata nenhuma chamada detectada quando usada em tais arquivos binários. Não há nenhuma solução atualmente disponível.

Como nota, ltrace pode relatar corretamente as chamadas em arquivos binários personalizados construídos sem as respectivas bandeiras de endurecimento.

(BZ#1618748, BZ#1655368)

Voltar ao topo
Red Hat logoGithubredditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar. Explore nossas atualizações recentes.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja o Blog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

Theme

© 2025 Red Hat