como obter o máximo possível de DBX
Pergunta
Eu faço TDD em uma base diária para o meu desenvolvimento C ++ em solaris10. Tem bastante reduzido o tempo que tenho para gastar usando o meu depurador mas em algum momento esta é a única opção.
DBX é muito poderoso, mas não tão fácil de usar. Note que estou falando consola DBX não o SunStudio GUI para DBX).
Quais são as melhores dicas de produtividade que você pode dar para dbx C ++ depuração?
PS. Alterar depurador não é uma opção.
Solução
I têm marcado algumas sites relacionados a dbx. Aqui estão eles, em nenhuma ordem particular no caso de eles podem ser úteis para você:
- Por que não posso DBX Find My Função?
- Ajuda on-line para o Dbx Debugger
- Sun Studio: depurar um aplicativo de rosca-multi w / dbx
- gdb vs. dbx: comandos de mapeamento e funcionalidade de comparação de
- Importando informações de depuração em dbx
- linha de comando dbx: Ver mais fonte
- Sun Studio C ++ - Seu .dbxrc (NB: adaptar o tipo inteiro usado para ponteiros elenco de acordo com o seu tamanho ponteiro)
- Sun Studio: Investigando vazamentos de memória com dbx
- Sun Studio: alocações de memória Gathering / vazamentos de dados, a partir de um processo em execução
EDIT em 2012 19 de julho: Eu tentei corrigir vários ligação desde o blog do Chris Quenelle mudou. Alguns artigos ainda pode ser acessado graças à máquina do tempo.
Outras dicas
Uma das características poderosas do DBX é o construído em ksh. Você pode escrever funções shell que são tão complexo como você pode querer imprimir visualizações customizadas de estruturas de dados, ou seguir ponteiros em uma rota específica. O escudo é um velho variação do pdksh, por isso não é o mais agradável para a programação, mas é muito melhor do que não ter qualquer built-in linguagem para uso. Há também uma grande ajuda disponível a partir da linha de comando. Um truque para procurar a ajuda é usar "vi $ helpfile" de dentro do shell de comando dbx. Tha tedits os dados ArquivoDeAjuda matérias em um arquivo grande. Você pode ver alguns exemplos de funções shell no arquivo dbxrc que vem com o dbx e é carregado por padrão. Você pode ver um exemplo mais sofisticado, olhando para o módulo de integração libumem. Você pode encontrá-lo aqui:
http://blogs.oracle.com/quenelle/entry/using_dbx_and_libumem_to
Eu também Have usar dbx no trabalho e entender suas frustrações!
Algumas dicas que eu descobri que fazem minha vida um pouco mais fácil:
Usando o sistema de comandos construído como este:
quando parar {print qualquer que seja ; }
Obviamente não funciona quando qualquer que seja está fora do escopo, mas acho que é o suficiente útil. Eu ainda tenho que ter muita alegria com a facilidade 'traço', YMMV.
Fazendo o seu próprio arquivo .dbxrc torna a vida muito mais fácil, assim como o recurso "pathmap".
Finalmente, esta é apenas óbvio, se você sabe que já, mas tentar da Sun manual do .
Não é particularmente bem escrito, mas ainda uma leitura essencial.