Skip to content

Projeto destinado para confeção dos projetos da turma de Software Básico relacionados à JVM.

License

Notifications You must be signed in to change notification settings

luigiminardim/SB-JVM

Repository files navigation

SB-JVM

Projeto destinado para confeção dos trabalhos da turma de Software Básico relacionados à JVM.

Atualmente o software é capaz de ler arquivos .class e exibir o seu conteúdo em formato JSON, de modo que seja possível a visualização dos dados contidos no arquivo.

Requisitos

  • g++ 11.3.0
  • make 4.3
  • cppcheck 2.7 ou maior
  • valgrind 3.19.0 ou maior
  • yajl-tools

Como executar

Para executar o software, é necessário primeiro compilar o mesmo. Para isso, basta executar o comando make na raiz do projeto. Após a compilação, basta executar o comando ./build/sb.exe <arquivo .class>

Dessa forma, ele irá exibir na saída padrão o conteúdo do arquivo .class em formato JSON.

Exemplo

make run file="assets/test-class/SimpleClass.class"
> {
    "__cls": "ClassFile",
    "magic_number": "0xCAFEBABE",
    ...

Como contribuir

Os arquivos fontes do projeto estão localizados na pasta src. Contribuiodores podem criar arquivos de extensão .c e .h para implementar novas funcionalidades. Depois, basta criar um Pull Request para que o código seja revisado e, caso aprovado, será adicionado ao projeto.

Como testar

Para adicionar testes ao projeto, basta criar um arquivo de extensão test.c na pasta test. Após isso, basta executar o comando make test para que os testes sejam executados.

Este projeto utiliza o Catch2 para testes unitários. Para mais informações sobre o Catch2, acesse o repositório oficial. Caso seja necessário adicionar arquivos com dados necessários para os testes, você pode adicioná-los dentro da pasta assets.

Análise Estática e Dinâmica

Instalação

Em sistemas Linux:

sudo apt install cppcheck
sudo apt install valgrind
sudo apt install yajl-tools

Em sistemas Windows o seguinte link disponibiliza instalador.

Utilização

Para realizar uma análise estática basta executar:

make lint

Para realizar uma análise dinâmica basta executar:

make valgrind command="read" file="path para .class"

About

Projeto destinado para confeção dos projetos da turma de Software Básico relacionados à JVM.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages