lauripaulo / tracetool

Tracetool and simulator for Segment Buffers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tracetool

Tracetool and simulator for Segment Buffers

Para instalar o Valgrind:

1) Baixe a versão 3.13 do site do Valgrind (tar.gz) ou use o link direto: ftp://sourceware.org/pub/valgrind/valgrind-3.13.0.tar.bz

2) Descompacte o arquivo em uma pasta no seu usuário. Na pasta do código fonte execute:

  1. mkdir /opt/valgrind/
  2. ./configure --prefix=/opt/valgrind
  3. make
  4. sudo make install

Se, por algum motivo, você precisar compilar o Valgrind novamente (uma nova versão?) execute os comandos abaixo antes de compilar novamente:

  1. sudo rm -rf /opt/valgrind/
  2. make distclean

Clone o projeto do github:

Em uma pasta no seu usuário execute:

  1. git clone https://github.com/lauripaulo/tracetool

Instale o Java (da distro, openJDK), Python 3 e o Eclipse (do site oficial):

Para instalar o java (openJDK):

  1. sudo apt-get update
  2. sudo apt-get install openjdk-8-jdk python3

Para instalar o Eclipse:

A maneira mais simples é utilizar o Eclipse instaler em: http://www.eclipse.org/downloads/eclipse-packages/

Outra maneira é puxar o pacote Eclipse IDE for Java Developers na mesma página. Nesse caso você precisa descompactar o arquivo em uma pasta do seu usuário (~/apps/eclipse) e criar um link no desktop para o arquivo (~/apps/eclipse/eclipse)

Compilar o projeto Java/Maven e configurar o ambiente:

No eclipse vá em "File", "Import", "Existing Maven projects...", vá onde está o projeto do github e encontre a pasta "java". Nela você irá encontrar o "pom.xml" do Maven. Crie o projeto.

Com o projeto criado clique com o botão direito no arquivo "pom.xml", escolha "Run as...", "Maven build..." (a opção com os três pontinhos...)

Na janela que abrir coloque em "name" o texto "Tracetool build" e em "goal" cloque "compile test install". Clique em "apply" e depois em "ok".

O Maven vai fazer as coisas do Maven. Quando terminar você deve ver uma mensagem assim no console do Eclipse: "BUILD SUCCESS"

Nesse ponto você tem o jar com o necessário para coletar os logs e executar a simulação no diretório "java/target". O nome do jar é "tracetool-all-0.9.2-jar-with-dependencies.jar". Gaurde esse caminho absoluto, ele será utilizado para alterar alguns shell scripts (TODO: definir a pasta do jar como variável de ambiente).

Vá na pasta "shell" e alterer os arquivos "tracetoolsimulator.sh", "tracetoolskip.sh" e "tracetool.sh" para que a variável JAR_FOLDER aponte para o seu "tracetool-all-0.9.2-jar-with-dependencies.jar".

Ainda em "shell" e altere o arquivo "pmap-observer.sh" para que a linha de comando aponte para o caminho absoluto do arquivo "python/pmap-observer.py".

E, finalmente, execute um "chmod +x install.sh" e execute. Ele irá apenas copiar os .sh para sua pasta de usuário e torna-los executáveis.

Agora o ambiente está configurado e pronto.

Teste de coleta de logs:

Abra um terminal, crie uma pasta de trabalho e execute o tracetool

  1. cd ~
  2. mkdir test
  3. cd test
  4. ~/tracetool.sh

Abra outro terminal e execute o script python para monitorar o mapa de memória do Valgrind Lackey

  1. cd ~
  2. cd test
  3. ~/pmap-observer.sh lackey pmap.txt

Abra outro terminal (sim você vai ter três terminais abertos) e execute o script com o aplicativo que você deseja coletar os traços utilizando o Valgrind. No exemplo vamos executar o "lsblk".

  1. cd ~
  2. cd test
  3. ~/valgrindexec.sh lsblk

Se o arquivo "pmap-final.txt" estiver vazio encontre o arquivo "pmap-.txt" com o maior número que não esteja vazio e renomeie para "pmap-final.txt"

A pasta "test" deve ter pelo menos um arquivo de traços. No exemplo deve ser apenas o "tracefile-trace-00000.txt.zip"

Teste de simulação:

Em um dos terminais abertos (você pode fechar os outros) execute o simulador na pasta de coleta de traços:

  1. cd ~
  2. cd test
  3. ~/tracetoolsimulator.sh

Quando a simulação terminar você pode ver o resumo dos resultado no arquivo "stats-simulation-results.txt.csv"

Na pasta "doc" tem duas imagens e um video da simulação.

Enjoy!

About

Tracetool and simulator for Segment Buffers


Languages

Language:Java 91.1%Language:Python 7.8%Language:Shell 0.6%Language:Batchfile 0.5%