DebuggingProgramCrash-pt_BR

Debugging Central

This page is part of the debugging series — pages with debugging details for a variety of Ubuntu packages.

Este documento descreve como instalar pacotes de depuração no Ubuntu, que o ajudará na informação de bugs.

Gutsy Gibbon 7.10 , Hardy Heron 8.04, Intrepid Ibex 8.10, e Jaunty Jackalope 9.04

Use esta seção somente se você está usando Ubuntu Gutsy 7.10 , Hardy 8.04 ou Intrepid 8.10 ou ainda, Jaunty Jackalope. Veja a seção seguinte se você estiver usando uma versão anterior.

  1. Adicione as seguintes linhas ao arquivo /etc/apt/sources.list: (respectivamente mudando o nome da versão que você está usando atualmente, jaunty para gutsy se você estiver usando a versão 7.10 ou hardy para a 8.04, ou intrepid para a 8.10).

    deb http://ddebs.ubuntu.com jaunty main restricted universe multiverse
    deb http://ddebs.ubuntu.com jaunty-updates main restricted universe multiverse
    deb http://ddebs.ubuntu.com jaunty-proposed main restricted universe multiverse
    deb http://ddebs.ubuntu.com jaunty-security main restricted universe multiverse
    Você pode também adicionar essas linhas usando o Gerenciador de pacotes Synaptic:
    • Escolha Gerenciador de pacotes Synaptic através do menu Sistema > Administração

    • Escolha Repositórios, no menu Preferências e clique na aba Programas de terceiros

    • Clique no botão Adicionar e digite cada linha deb ... descrita acima, uma por uma e clique no botão Adicionar Canal (você terá que adicionar estas linhas uma por vez)

    • Clique no botão Recarregar, na barra de ferramentas assim que você adicionar todas as linhas deb acima

  2. Importe a chave de assinatura dos arquivos de símbolos de depuração:
    gpg --keyserver keyserver.ubuntu.com --recv-key 428D7C01
    gpg --check-sigs 428D7C01 # assinado pela chave de Martin Pitt
    gpg -o - --export 428D7C01 | sudo apt-key add -
  3. Então execute
    sudo apt-get update
    para atualizar a lista de pacotes.
  4. Os pacotes de símbolos de depuração tem o sufixo '-dbgsym' anexados. Então para instalar os símbolos de depuração para o pacote 'yelp', execute primeiro:
    apt-cache policy yelp

Isto vai mostrar primeiramente a você o número da versão instalada atualmente (vamos usar a 2.22.1-0ubuntu2.8.04.1 neste exemplo). Então, você pode executar o seguinte para instalar os símbolos de depuração:

  • sudo apt-get install yelp-dbgsym=2.22.1-0ubuntu2.8.04.1

Alternativamente, os repositórios principais do Ubuntu podem conter pacotes de símbolos de depuração '-dbg'. Estes são equivalentes aos '-dbgsym'. Você pode instalar com segurança tanto um quanto outro pacote, mas não ambos ao mesmo tempo.

  1. Agora você tem um Backtrace.

  2. Você pode executar Valgrind, se o programa travar com uma "Falha de segmentação" ou "Erro de barramento".

  3. Opcionalmente você pode ser perguntado a produzir um Strace.

  4. Você pode informar este arquivo: ~/.xsession-errors

Referências

Versões anteriores do Ubuntu

Siga esta seção se você está usando uma versão do Ubuntu anterior ao Gusty 7.10.

  1. Verifique se o pacote tem uma versão de depuração disponível. Em geral, os pacotes de depuração virão nomeados com o sufixo -dbg;

  2. Se não, você pode geralmente* compilar um dessa maneira:

Mantenha em mente: se você gostaria de criar uma compilação, você necessitará ter as linhas deb-src relevantes em seu arquivo /etc/apt/sources.list

  1. Instale os scripts de desenvolvimento:
    sudo apt-get install devscripts fakeroot
  2. Procure saber a que pacote seu programa pertence:
    dpkg --search <programa> 
  3. Instale as dependências de compilação para o pacote:
    sudo apt-get build-dep <pacote>
  4. Compile os .debs para depuração:
    export DEB_BUILD_OPTIONS="debug nostrip noopt"
    fakeroot apt-get source -b <pacote>
  5. Instale os .debs necessários (eles estarão no diretório de trabalho atual se a compilação foi executada com sucesso):
    sudo debi <pacote>*.changes

* Muitos pacotes suportam a compilação de uma versão de depuração desse jeito. Se o processo não funcionar para um pacote, por favor, abra um relatório de bug sobre ele.

O servidor XOrg

O servidor X vai, por padrão capturar seus próprios travamentos e descarregar a pilha de registro no arquivo /var/log/Xorg.0.log. Porém, esta pilha de registro é modificada por seu próprio manipulador de sinais. Para obter um travamento "normal", que irá disparar um gatilho de descarregamento do cerne do sistema (e um relatório apport), adicione isso ao seu arquivo /etc/X11/xorg.conf:

Section "ServerFlags"
        Option "NoTrapSignals" "true"
EndSection

Por favor, veja DebuggingXorg sobre como depurar travamentos do servidor do Xorg.

Informações para o Esquadrão de Bugs

Se você está tentando disparar relatório de travamento apport-retrace de um bug que não acontecia na mesma versão do Ubuntu que você está executando, faça o seguinte:

Digamos que você está executando o Gutsy e o travamento aconteceu no Feisty:

  1. Isto irá criar um pequeno sistema feisty.

    sudo mkdir -p /chroots/feisty
    sudo debootstrap feisty /chroots/feisty/
  2. Agora você pode alterar neste pequeno sistema feisty.

    sudo chroot /chroots/feisty
  3. Edite o arquivo /etc/apt/sources/list e todos os repositórios que você necessita, especialmente o repositório ddeb do Martin.

  4. apt-get update; apt-get install gdb apport
  5. Use o apport-retrace como você já está acostumado.

Para maiores informações sobre como lidar com relatórios de bug Apport, veja Bugs/ApportRetraces.


CategoryBugSquad CategoryDebugging

DebuggingProgramCrash-pt_BR (last edited 2009-01-19 06:26:38 by 201-93-242-29)