Profiling stock Ubuntu kernel com sysprof: como?

4

Existem várias ferramentas de debug em todo o sistema (sysprof, oprofile, systemtap) que precisam de símbolos de depuração. Obter símbolos de depuração para aplicativos do espaço do usuário é fácil: link

O repositório ddebs também contém linux-image-$(uname -r)-dbgsym packages, mas mesmo que eu o instale, o sysprof continua a mostrar-me inútil "in kernel" sem informações detalhadas. Onde posso obter símbolos de depuração que o sysprof possa usar?

O pacote systemtap tem um Suggests: linux-debug-2.6. A busca do Apt-cache não consegue encontrar nada chamado linux-debug-2.6. Está disponível em algum lugar? Ou isso é um beco sem saída improdutivo?

Aliás, o oprofile pode usar os símbolos de depuração do pacote dbgsym acima mencionado, mas não fora da caixa - ele quer /lib/modules/$(uname -r)/build/vmlinux , e eu tenho que dizer para usar /usr/lib/debug/boot/vmlinux-$(uname -r)-generic . Mas o oprofile não tem uma boa interface gráfica, então eu prefiro o sysprof.

Então, como posso convencer o sysprof a me mostrar o que está acontecendo no kernel?

    
por Marius Gedminas 03.10.2010 / 23:37

1 resposta

0

Tanto quanto eu posso dizer, eu estava enganado e o sysprof não fornece nenhum nível de detalhes além do "kernel". Aqui está o sysprof-1.0.12 / process.c, linhas 350 a 355:

    if (address == 0x1)
    {
        kernel.name = "in kernel";
        kernel.address = 0x0001337;
        return &kernel;
    }
    
por Marius Gedminas 15.10.2010 / 02:04