Compartilhe:
Início > Linux debugging

Linux debugging

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

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

  • Introdução à depuração de software, processo estruturado 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.
  • 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, ambiente de desenvolvimento, buildsystem e Buildroot.
  • Coletando informações de sistemas de arquivos virtuais do kernel (procfs, sysfs, debugfs), depurando o kernel Linux com ferramentas e técnicas de logging (printk, dynamic debug), análise de mensagens de crash do kernel (oops e panic) com as ferramentas addr2line e GDB, depurando módulos do kernel, pstore, kdump.
  • Tracing estático e dinâmico do kernel Linux, ferramentas e técnicas de tracing do kernel (ftrace, trace-cmd, kernelshark, systemtap), introdução ao ftrace, tracing de funções, tempos de latência e consumo de stack, introdução ao comando trace-cmd, visualização gráfica do tracing com a ferramenta kernelshark.
  • Depuração interativa do kernel Linux com o GDB (kgdb, gdbclient e agent-proxy), GDB e otimização de código, front-end de depuração KDB, depuração no nível do hardware com JTAG.
  • Frameworks de depuração do kernel Linux, menu de configuração “Kernel Hacking”, detecção de vazamento de memória no kernel com o kmemleak, magic sysrq key, detecção de travamentos no kernel.
  • Ferramentas e técnicas de logging na camada de usuário, análise de crashes e core dump em aplicações e bibliotecas Linux, GDB e bibliotecas dinâmicas.
  • Ferramentas de tracing de aplicações em espaço de usuário, strace, ltrace, etrace, uprobe, perf, systemtap, lttng-ust.
  • Depuração remota de aplicações Linux com o gdbserver, GDB e bibliotecas dinâmicas, GDB e otimização de código, depuração de aplicações multithread com o GDB.
  • Depurando o uso de memória em aplicações Linux, ferramentas de análise do uso de memória (free, procrank, pmap), depurando e identificando vazamentos de memória com valgrind, mtrace, memwatch e dmalloc.
  • Análise de performance em sistemas Linux, análise de consumo de CPU (uptime, cpuload, top, schedtop, time), análise de consumo de memória (free, procrank, pmap), 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.

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 com Linux embarcado.

Pré-requisitos

Terminal de comandos (ls, cp, mv, cat, grep, find, vi, etc), conhecimentos intermediários nas linguagens C e C++, compilação de aplicações com make e gcc, arquitetura e componentes de um sistema com Linux embarcado (toolchain, bootloader, kernel, rootfs), configuração e compilação do kernel Linux.

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 módulo Colibri i.MX6 da Toradex (ARM Cortex-A9), com a placa-base Viola e uma placa de expansão com diversos periféricos, incluindo leds, botões, trimpot, buzzer, UART, sensor de luminosidade, expansor de GPIO, display de 7 segmentos e acelerômetro.

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