Estou escrevendo um guia para o Ebrowse e o lançarei nesta semana.Ebrowse é um analisador rápido usado para processar arquivos de origem C ++ para produzir um banco de dados que contém a hierarquia de classes que é processada posteriormente pelo Emacs para produzir uma representação da árvore de classes. É um pouco como o GNU Global, mas é embutido no Emacs e produz uma árvore de classes, portanto, levará mais tempo para processar na grande árvore de origem.
Para usar o Ebrowse:
find . -name '*.cpp' -or -name '*.h' | ebrowse
Adicione mais extensões, se quiser. Se o seu projeto tiver apenas centenas de arquivos, então = Ebrowse = funciona muito bem. Depois de executar o comando, um arquivo chamado BROWSEé gerado; esse é o banco de dados que contém a hierarquia de classes. Simplesmente abra este arquivo e o Emacs o reconhece e processa automaticamente. Após o processamento do banco de dados, o Emacs exibe um índice de todas as classes no banco de dados em formato de árvore: se uma classe é derivada de uma classe, ela é aninhada dentro da classe pai. Esse buffer é chamado de Tree buffer. O Emacs fornece três maneiras de interagir Ebrowse:
Tree buffer: um buffer que exibe a árvore.
Memberbuffer: um buffer que exibe membros de cada classe. Você pode alternar entre declarações e definições de uma classe e pular para o local de cada uma no arquivo de origem correspondente.
Sourcebuffer: seu buffer de código. Você pode interagir com o Ebrowse
banco de dados, como encontrar e visualizar declarações e definições (abertas para somente leitura), abrir um = Member = buffer de uma classe que contém a tag no ponto ...
Se você tem um projeto grande (ou seja, mais de 10000 arquivos cpp), mas todas as classes estão em .harquivos, não adicione, .cppou então levaria muito tempo para gerar o BROWSEarquivo. Você perderá a capacidade de mudar para a definição; mas isso pode ser feito usando ctagsou GNU Global. O mais importante é visualizar a hierarquia de classes Tree buffere essa é a vantagem do Ebrowse.
O guia WIP está aqui .
Atualização : Como alternativa, você pode usar o doxygen para gerar todos os tipos de gráficos (gráficos de chamadas / chamadas, gráficos de dependência, gráficos de hierarquia de classes ...), mas também leva muito tempo para gerar tudo, mesmo para pequenas árvores de origem como o ipxe . Isso não doxygené lento, na verdade, é bastante otimizado, mas calcular a dependência para toda a base de código não é uma tarefa trivial.
Bônus : Se você trabalha com C e deseja ver o gráfico de chamadas, use o GNU Cflow. Veja meu reddit reddit .