Compartilhe:
Início > Linux & Android debugging

Linux & Android debugging

Este treinamento visa capacitar o participante a depurar e resolver problemas em sistemas com Linux e Android embarcado.

Durante o treinamento, os seguintes tópicos serão abordados:

  • Introdução à depuração de software, o processo de depuração de software, principais tipos de problemas, principais mecanismos de depuração, processos e técnicas de depuração e análise de performance em sistemas Linux e Android.
  • Introdução ao GDB, depurando aplicações com o GDB, comandos básicos do GDB, controle de execução, breakpoints, watchpoints, catchpoints, imprimindo expressões, exibindo memória, backtrace do stack, modo TUI, integração com DDD e Eclipse.
  • Apresentação da plataforma de desenvolvimento que será utilizada no treinamento, características do hardware, referências e documentação.
  • Documentação do kernel Linux, depurando o kernel Linux com ferramentas e técnicas de logging (printk, dynamic debug), coletando informações dos sistemas de arquivo virtuais (procfs, sysfs, configfs, debugfs), análise de mensagens de crash do kernel (oops e panic), a ferramenta addr2line, depurando módulos do kernel, kdump, pstore.
  • Probes estáticos (tracepoints, trace_events), probes dinâmicos (kprobes), ferramentas e técnicas de tracing (ftrace, trace-cmd, kernelshark, lttng, systemtap), tracing de funções, tempos de latência e consumo de stack.
  • Depuração interativa do kernel Linux com o GDB (kgdb, gdbclient e agent-proxy), front-end de depuração KDB, depuração no nível do hardware com JTAG.
  • Frameworks de depuração do kernel Linux, detecção de memory leak no kernel (kmemleak), magic sysrq key, detecção de travamentos (deadlock) no kernel.
  • Ferramentas e técnicas de logging na camada nativa (syslogd, klogger, logcat, dumpstate, bugreport), debuggerd, análise de crashes em aplicações e bibliotecas nativas, coredump, tombstones, analisando problemas em bibliotecas dinâmicas.
  • Ferramentas de tracing de aplicações na camada nativa, strace, ltrace, ld.so, etrace, uprobe, perf, systemtap, lttng-ust.
  • Depuração remota com o gdbserver, depuração interativa de aplicações nativas, depuração de aplicações multithread.Depurando o uso de memória em aplicações nativas, ferramentas de análise do uso de memória (free, procrank, procmem, showmap, librank), depurando memory leak com valgrind, memwatch, mtrace, dmalloc.
  • Ferramentas e técnicas de logging na camada Java (logcat, dumpsys, dumpstate, ANR), análise de crashes na camada Java, ferramentas de tracing (systrace, apitrace), integração do código-fonte do AOSP e depuração de serviços do framework no Android Studio, DDMS, ferramentas da linha de comandos que podem ajudar na depuração (am, pm, wm, svc, service).
  • Análise de performance em sistemas Linux e Android, análise de consumo de CPU (top, cpustats, schedtop), análise de consumo de memória (free, procrank, procmem, showmap, librank, meminfo), análise de performance com o perf, a ferramenta oprofile, analisando a performance de aplicações com o strace e o ltrace, analisando a performance de aplicações com o gprof, analisando a performance de aplicações Java com o traceview e o systrace.

Para mais detal­hes sobre o con­teúdo, você pode consultar a agenda e os slides do treina­mento.

Os slides deste treinamento são liberados sob a licença Creative Commons BY-SA 3.0, e os fontes podem ser baixados aqui.

Algumas fotos dos treinamentos já realizados podem ser visualizadas aqui.

Público alvo

Estudantes, engenheiros e desenvolvedores de sistemas embarcados baseados no kernel Linux e/ou no sistema operacional Android.

Pré-requisitos

Arquitetura de sistemas com Linux embarcado, arquitetura interna do sistema operacional Android, terminal de comandos do Linux (ls, cat, grep, find, etc), configuração e compilação do kernel Linux, conhecimentos básicos em linguagem C, C++ e Java, compilação de aplicações Linux com make e gcc.

Equipamentos

Todos os equipamentos necessários são fornecidos pela Embedded Labworks.

Mate­r­ial de estudo

O mate­r­ial de estudo é com­posto pelos slides das apre­sen­tações, o livro de ativi­dades e exer­cí­cios, os guias de refer­ên­cia e doc­u­men­tos de estudo adi­cionais. Todo o mate­r­ial será fornecido de forma eletrônica no iní­cio do treina­mento.

Kit de desenvolvimento

Os exercícios do treinamento são realizados no kit de desenvolvimento Wandboard Quad (ARM Cortex-A9) com um display LCD touchscreeen de 7” da Touch Revolution.

Turmas abertas

Os treinamentos em turmas abertas são realizados em um ambiente agradável, com um laboratório devidamente equipado e acesso à Internet. As aulas são normalmente ministradas em período integral, com uma parada para o almoço e um coffee-break pela manhã.

Caso esteja interessado em participar do treinamento e não exista uma turma aberta, faça a pré-inscrição clicando aqui. Entraremos em contato assim que uma nova turma for aberta.

Treinamentos in-company

Se você planeja capacitar a sua equipe, considere um treinamento na sua empresa.

Turmas fechadas para treinamento in-company possuem as mesmas características de uma turma aberta. Neste modelo, a empresa é responsável por fornecer os recursos necessários para a realização do treinamento, incluindo sala, datashow e as máquinas de desenvolvimento. Esse modelo também traz grande economia para a empresa, já que o custo do transporte e estadia de vários funcionários é reduzido apenas ao do instrutor.

Se sua empresa tem uma necessidade especial, podemos estudar um programa que atenda sua necessidade de forma direcionada, como preparar o treinamento para uma plataforma de hardware específica ou desenvolver um conteúdo adicional. Não hesite em entrar em contato por e-mail ou pela página de contato.

Treinamentos na sua cidade

Você pode levar os treina­mentos para sua comu­nidade, em qual­quer cidade do Brasil.

Você não tem condições de realizar o curso em São Paulo? Você tem um grupo de estu­dos e quer aprender mais sobre determinada tecnologia? Você coor­dena ou par­tic­ipa da coor­de­nação de algum curso na sua uni­ver­si­dade e gostaria de treinar seus alunos? Você tem um espaço, quer reunir os ami­gos e pas­sar agradáveis horas apren­dendo sobre sistemas embar­cados?

Mande um e-mail ou uma mensagem para nós. Informe seu curso de interesse e também a sua cidade. Se conseguirmos formar uma turma, poderemos levar o treinamento para a sua cidade!

Ainda tem dúvidas?

Em caso de dúvidas, críticas ou sugestões, envie um e-mail ou deixe uma mensagem na página de contato.

Entre em contato