Pergunta

Você pode postar seus comandos maioria complicadas e úteis quando você executar um depurador como gdb ou dbx.

Foi útil?

Solução

  1. backtrace completo : backtrace Completo com variáveis ??locais
  2. se , abaixo , quadro : Mover através de quadros
  3. relógio : Suspender o processo quando uma determinada condição é satisfeita
  4. definição de impressão bonita em : Prints fora lindamente formatado código fonte C
  5. logging set on : Log sessão de depuração para mostrar aos outros para suporte
  6. array print set on : impressão variedade Bonita
  7. acabamento : Continuar até final de função
  8. permitir e desativar : Ativar / desativar pontos de interrupção
  9. Tbreak : Ruptura uma vez, e em seguida, remover o ponto de interrupção
  10. , onde : Número da linha a ser executada
  11. info locals : Ver todas as variáveis ??locais
  12. Info args : Ver todos os argumentos da função
  13. lista : view source
  14. RBREAK : pausa na função de correspondência expressão regular

Outras dicas

gdb Comece com uma interface de usuário textual

gdb -tui

A partir de gdb 7.0, há reversível depuração , para que o seu novo favorito comandos são:

* reverse-continue ('rc') -- Continue program being debugged but run it in reverse
* reverse-finish -- Execute backward until just before the selected stack frame is called
* reverse-next ('rn') -- Step program backward, proceeding through subroutine calls.
* reverse-nexti ('rni') -- Step backward one instruction, but proceed through called subroutines.
* reverse-step ('rs') -- Step program backward until it reaches the beginning of a previous source line
* reverse-stepi -- Step backward exactly one instruction
* set exec-direction (forward/reverse) -- Set direction of execution.

Em vez de lançar GDB com "-tui" param você também pode alternar para o modo de texto depois de um tempo usando digitando "wh".

thread apply all bt ou thread apply all print $pc: Para descobrir rapidamente o que os tópicos estão fazendo

.

Por exemplo, as macros definido na STL-views.gdb

Usando a opção -command=<file with gdb commands> enquanto queima-se gdb. Mesmo que -x <command file>. Este arquivo de comando pode conter comandos gdb como pontos de interrupção, opções, etc. útil caso a determinadas necessidades executáveis ??para ser colocado através de corridas de depuração sucessivas usando gdb.

scripting gdb é um bom truque, além de que eu gosto conjunto de travamento agendador on / off para evitar a execução de outros tópicos quando você está pisando em um.

Em vez de começar gdb com o -tui opção para ver um processo filho que contém uma tela que destaca onde a linha de execução de código está em seu programa, salto dentro e fora de esse recurso com C-x O e C-x a. Isso é útil se você estiver usando o recurso eo que temporariamente não usá-lo para que você possa usar a seta para cima para obter um comando anterior.

  • Usando .gdbinit (start up de arquivos onde você pode escrever macros e chamada do GDB). Lugar .gdbinit em seu diretório pessoal para que ele seja pego cada vez gdb é carregado
  • info threads para listar todos os tópicos ativos, e f (#) -> número # segmento que você quer mudar para

  • Às vezes eu usar gdb converter de hexadecimal para decimal ou binário, é muito útil em vez de abrir-se uma calculadora

    • p / d 0x10 -> dá equivalente decimal de 0x10
    • p / t 0x10 -> equivalente binário 0x10
    • p / x 256 -> hex equivalente a 256

Isto pode ser útil, estou certo de que poderia ser melhorado no entanto, ajuda bem-vinda:

define mallocinfo
  set $__f = fopen("/dev/tty", "w")
  call malloc_info(0, $__f)
  call fclose($__f)

Para STL de depuração, o conteúdo add para .gdbinit, siga estas instruções:

http://www.yolinux.com/TUTORIALS/GDB-Commands. html # STLDEREF

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top