GithubHelp home page GithubHelp logo

tracetool's Introduction

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!

tracetool's People

Contributors

lauripaulo avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.