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.

No investimento de um treinamento in-company está incluso um kit de desenvolvimento cedido pela Toradex Brasil.

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