Eu estava apenas depurando um programa no gdb e de alguma forma encontrei um novo recurso que nunca tinha visto ou ouvido antes, uma visão dividida onde posso ver e navegar pelo código, além de dar comandos:
O que é isso? O que eu fiz ou, mais especificamente, como posso obter esse modo de tela dividida novamente? Existe um nome para este modo ou algum lugar onde eu possa ler sobre como usá-lo?
Respostas:
É chamado de TUI (sem brincadeira). Comece por exemplo com
gdbtui
ougdb -tui
...fonte
layout next
depois de começargdb
normalmenteVocê pode acioná-lo dinamicamente pressionando ctrl+ xe ctrl+ a.
fonte
Existem duas variantes disso.
Pressione
CTRL
X
juntos e então1
Pressione 'CTRL' 'X' juntos e depois '2'
http://www.cs.fsu.edu/~baker/ada/gnat/html/gdb_23.html
Uma captura de tela da visualização com código e montagem.
Verifique também este incrível projeto Github.
fonte
Você também pode iniciá-lo a partir do shell gdb usando o comando "-" (traço). Não tenho certeza de como desligá-lo dinamicamente.
fonte
Painel GDB
https://github.com/cyrus-and/gdb-dashboard
O painel do GDB usa a API GDB Python oficial e imprime as informações que você deseja quando o GDB para, por exemplo, após um
next
, como odisplay
comando nativo .Vs TUI:
mais robusto, pois ele apenas imprime em stdout em vez de colocar o shell em um estado de maldições mágicas, por exemplo:
vi
modo em.inputrc
causa problemas: /superuser/180512/how-to-turn-off-gdb-tui/927728#927728altamente configurável do Python: você pode selecionar o que deseja produzir e o tamanho de cada seção, dependendo do que você está depurando.
As visualizações mais úteis já estão implementadas: fonte, montagem, registros, pilha, memória, threads, expressões ... mas deve ser fácil estendê-las com qualquer informação que é exposta na API GDB Python.
A TUI só permite mostrar duas fontes, assembly e registradores e pronto. A menos que você queira modificar seu código-fonte C, é claro ;-)
Eu acredito que o GDB deve ser fornecido com uma configuração assim fora da caixa e ativado por padrão, ele atrairia muito mais usuários dessa forma.
Ah, e o desenvolvedor principal, Andrea Cardaci , tem sido muito responsivo e incrível. Muitos elogios.
Consulte também: Como destacar e colorir a saída do gdb durante a depuração interativa?
fonte
Digite
layout
como um comando em gdb e a janela dividida será exibida.fonte
Quando o GDB está no modo padrão, o uso
win
muda automaticamente para o modo TUI.Outro comando para o modo TUI:
info win
Liste e forneça o tamanho de todas as janelas exibidas.
focus next | prev | src | asm | regs | split
Defina o foco para a janela nomeada. Este comando permite mudar a janela ativa para que as teclas de rolagem possam ser afetadas para outra janela.
Leia aqui mais ajuda.
fonte
Também existe uma ferramenta de interface para GDB chamada cgdb. Mesmo com algum destaque de cor. "ESC" para mudar para a visualização do código, "i" para voltar para gdb
fonte
O modo tui foi claramente inspirado no emacs - descobri por acidente quando bati em ^ Xo, que alterna entre janelas divididas no emacs - às vezes bati nisso distraidamente quando o que deveria fazer é mudar para um programa diferente. De qualquer forma, isso leva a outro recurso não mencionado ainda, que você pode mover o cursor da janela de código (onde você pode rolar) para a linha de comando, ou vice-versa, com ^ Xo.
fonte