Basicamente, as ferramentas pin são projetadas como compiladores "Just In Time (JIT)", portanto, os dois componentes por trás da arquitetura são o Código de Instrumentação e Análise. Como você deve saber, as ferramentas PIN têm a capacidade de instrumentar a arquitetura de forma independente. Portanto, como a instrumentação ocorre imediatamente antes da execução da sequência de código na primeira vez, você deve tratar o programa diretamente com o benchmark de destino.
Aqui estão algumas dicas:
Primeiro, vá para o diretório pai da ferramenta Pin, o uso geral do pin é definido como:
pin [OPTION] [-t <tool> [<toolargs>]] -- <command line>
Em segundo lugar, exporte o caminho do pin para o env para poder usá-lo em qualquer outro lugar (no meu caso):
export PATH=$PATH:/home/amir/pin-2.12-58423-gcc.4.4.7-linux/
Agora você pode usá-lo em qualquer lugar para fixar o instrumento (contagens de compilação, takens de ramificação, etc).
i.e. : Existem algumas fontes de exemplo para começar a trabalhar em
$ cd source/tools/ManualExamples
como inscount, linux_buffer, etc. use o comando make para g ++ compilar os códigos-fonte:
make inscount0.test
e depois:
$ pin -t inscount0.so -- /bin/ls
para obter a saída do / bin / ls.
Espero que isso ajude você.