FERRAMENTAS LINUX: O GNU Debugger "GDB" adiciona o suporte para o protocolo de adaptador de depuração da Microsoft

segunda-feira, 2 de janeiro de 2023

O GNU Debugger "GDB" adiciona o suporte para o protocolo de adaptador de depuração da Microsoft

 


Foi fundido hoje com o GNU Debugger (GDB) está o suporte inicial para o Debug Adapter Protocol (DAP), que é uma interface JSON-RPC para uso por ambientes de desenvolvimento integrado (IDEs) para melhor comunicação com depuradores.

O Debug Adapter Protocol (DAP) é definido pela Microsoft como um protocolo abstrato entre IDEs e depuradores. Conforme explicado na página protocol's GitHub :

"A ideia por trás do Debug Adapter Protocol (DAP) é abstrair a maneira como o suporte de depuração das ferramentas de desenvolvimento se comunica com depuradores ou tempos de execução em um protocolo. Como não é realista supor que depuradores ou tempos de execução existentes adotem esse protocolo tão cedo, em vez disso, assumimos que um componente intermediário - o chamado Debug Adapter - adapta um depurador ou tempo de execução existente ao Debug Adapter Protocol.

O Debug Adapter Protocol torna possível implementar um depurador genérico para uma ferramenta de desenvolvimento que pode se comunicar com diferentes depuradores via Debug Adaptadores e adaptadores de depuração podem ser reutilizados em várias ferramentas de desenvolvimento, o que reduz significativamente o esforço para oferecer suporte a um novo depurador em diferentes ferramentas.

O Debug Adapter Protocol é uma vitória tanto para provedores de depuradores quanto para fornecedores de ferramentas!"

O Debug Adapter Protocol é amplamente suportado pelo VS Code da Microsoft, há também um servidor DAP, o Eclipse tem algum suporte DAP, há algum suporte DAP integrado ao GNU Emacs e vários outros projetos, tanto para suporte a idiomas quanto para ambientes de desenvolvimento, centrados nisso Protocolo JSON-RPC. Agora, hoje, o código mestre do GDB Git mais recente também faz o DAP.


Essa implementação DAP é feita por meio da API Python do depurador, em vez de um shim. Com o código de desenvolvimento GDB mais recente, o suporte pode ser ativado com gdb -i=dap .

O código DAP aceitará mensagens JSON-RPC em stdin e imprimirá respostas em stdout. O GDB redireciona o stdout inferior para um novo canal para que a saída possa ser encapsulada pelo protocolo.

O código Python usa vários threads para fazer seu trabalho. Threads separados são usados ​​para ler JSON do cliente e para gravar JSON no cliente. Todo o trabalho do GDB é feito no thread principal. (A primeira implementação usava assíncrono, mas tinha algumas limitações, então eu a reescrevi para usar as threads.)

Essa não é uma implementação completa do protocolo, mas implementa o suficiente para demonstrar que a abordagem geral funciona.

A implementação do GDB foi trabalhada pelo desenvolvedor Tom Tromey e será encontrada na próxima versão do GDB.







Fonte

Até a próxima !!





Nenhum comentário:

Postar um comentário