
☕ GDBFrontend é um depurador GUI fácil, flexível e extensível.

GDBFrontend é um depurador gráfico fácil, flexível e extensível.

Você pode instalar o GDBFrontend com pip.
sudo python3 -m pip install gdbfrontend
se já estiver instalado e você estiver atualizando
sudo python3 -m pip install --upgrade gdbfrontend
ou se quiser instalar um snapshot específico do GIT:
sudo python3 setup.py install
e você pode executar
gdbfrontend
Você pode baixar a fonte mais recente e executá-la.
Você pode executar o gdb-frontend com os seguintes comandos:
git clone https://github.com/rohanrhu/gdb-frontend.git gdb-frontend
cd gdb-frontend
./gdbfrontend
e você pode abri-lo com:
http://127.0.0.1:5550/
Você pode abrir o shell do GDB com o comando:
tmux a -t gdb-frontend
Você pode instalar o pacote Arch Linux para distribuições baseadas em Arch. (Pacote AUR)
yay -S gdb-frontend-bin
e você pode executá-lo:
gdbfrontend
O pacote Flatpak é um TODO.
Siga este tutorial para aprender como depurar aplicativos C/C++ Dockerizados com GDBFrontend.
Siga este tutorial rápido para depurar dispositivos embarcados com GDBFrontend.
Siga este tutorial rápido para depurar extensões nativas C Python com GDBFrontend.
GDBFrontend possui APIs poderosas e extensíveis. Siga este tutorial rápido para aprender a desenvolver plugins GDBFrontend.
Siga este tutorial rápido para ideias de integração para requisitos especiais de desenvolvimento/depuração.
Siga este tutorial para depurar STM32 com OpenOCD e GDBFrontend.
GDBFrontend possui um avaliador de expressões que você pode usar múltiplos ao mesmo tempo.



Clique com o botão direito em um breakpoint para definir sua condição.


As expressões de todas as variáveis, membros e itens estão conectadas no VariablesExplorer do GDBFrontend.

Você pode visualizar, filtrar ou gerenciar processos com o Gerenciador de Processos.


GDBFrontend possui um conjunto de recursos para colaboração chamado "Colaboração Aprimorada".

O desenho de colaboração está disponível quando você ativa a Colaboração Aprimorada. Clique em Desenhar ou use o atalho Ctrl + Shift + X para desenhar e Ctrl + Shift + C para limpar todos os desenhos.

Com a Colaboração Aprimorada, todos os clientes do depurador são sincronizados na visualização do código fonte.

GDBFrontend é muito extensível e possui APIs poderosas. Alguns exemplos da extensibilidade do GDBFrontend.


./gdbfrontend$ gdbfrontend --help
GDBFrontend is a easy, flexible and extensionable gui debugger.
Options:
--help, -h: Shows this help message.
--version, -v: Shows version.
--gdb-args="ARGS", -G "ARGS": Specifies GDB command line arguments. (Optional)
--gdb-executable=PATH, -g PATH: Specifies GDB executable path (Default is "gdb" command on PATH environment variable.)
--tmux-executable=PATH, -tmux PATH: Specifies Tmux executable path (Default is "tmux" command on PATH environment variable.)
--terminal-id=NAME, -t NAME: Specifies tmux terminal identifier name (Default is "gdb-frontend".)
--credentials=USER:PASS, -c USER:PASS: Specifies username and password for accessing to debugger.
--host=IP, -H IP: Specifies current host address that you can access via for HTTP and WS servers.
--listen=IP, -l IP: Specifies listen address for HTTP and WS servers.
--port=PORT, -p PORT: Specifies HTTP port. (0 for random port.)
--url-base=PATH, -u PATH: Specifies URL base path. (Default: /)
--readonly, -r: Makes code editor readonly. (Notice: This option is not related to security.)
--workdir, -w: Specifies working directory.
--plugin-dir, -P: Specifies plugins directory.
--dontopenuionstartup, -D: Avoids opening UI just after startup.
--verbose, -V: Enables verbose output.
--help, -hMostra texto de ajuda.
--version, -vMostra a versão.
--gdb-args="ARGS", -G "ARGS"Especifica argumentos de linha de comando do GDB. (Opcional)
--gdb-executable=PATH, -g PATHVocê pode especificar o caminho do executável do GDB como gdbfrontend --gdb-executable=/path/to/gdb. (Opcional)
--tmux-executable=PATH, -tmux PATHVocê pode especificar o caminho do executável do Tmux como gdbfrontend --tmux-executable=/path/to/tmux. (Opcional)
--terminal-id=PATH, -t PATHVocê pode especificar o ID do terminal do Tmux como gdbfrontend --terminal-id=terminal-name. (Padrão: gdb-frontend)
--credentials=USER:PASS, -c USER:PASSEspecifica nome de usuário e senha para acessar o depurador.
--host=IP, -H IPEspecifica o endereço do host atual que você pode acessar através dos servidores HTTP e WS.
--listen=IP, -l IPEspecifica o endereço de escuta para servidores HTTP e WS.
--port=PORT, -p PORTEspecifica a porta HTTP. (0 para porta aleatória.)
--url-base=PATH, -u PATHEspecifica o caminho base da URL. (Padrão: /)
--readonly, -rTorna o editor de código somente leitura. (Aviso: Esta opção não está relacionada à segurança.)
--workdir, -wEspecifica o diretório de trabalho.
--plugin-dir, -PEspecifica o diretório de plugins.
--dontopenuionstartup, -DEvita abrir a interface do usuário logo após a inicialização.
--verbose, -VHabilita saída detalhada.
Os comandos GDB do GDBFrontend começam com gf-.
gf-refreshAtualiza todos os clientes do navegador.
gf-theme [nome-do-tema]Muda para o tema desejado. Por exemplo: gf-theme light, gf-theme red ou gf-theme default para o tema padrão.
gf-list-pluginsLista todos os plugins do GDBFrontend no diretório de plugins.
gf-load-plugin [nome-do-plugin]Carrega um plugin do GDBFrontend.
gf-unload-plugin [nome-do-plugin]Descarrega um plugin do GDBFrontend.
As teclas de atalho atuais estão listadas abaixo.
GDBFrontend possui temas embutidos.
Para alternar entre temas, use o comando gf-theme [TEMA] no shell do GDB.
(gdb) gf-theme doki
(gdb) gf-theme sky
(gdb) gf-theme sakura
(gdb) gf-theme waifu
(gdb) gf-theme cyberpunk
(gdb) gf-theme dark
(gdb) gf-theme green
(gdb) gf-theme light
(gdb) gf-theme red
Para voltar ao tema padrão.
(gdb) gf-theme
Você também pode querer ver o Tutorial de Desenvolvimento de Plugins.
Você pode acessar a API Python do GDBFrontend através do módulo gdbfrontend.
(gdb) python-interactive
>>> dir(gdbfrontend)
Por exemplo, você pode obter todos os sockets do cliente assim:
>>> gdbfrontend.api.globalvars.httpServer.ws_clients
{1: <server.GDBFrontendSocket object at 0x...>}
ou você pode obter todos os plugins:
>>> gdbfrontend.plugin.getAll()
['hello', 'theme_cyberpunk', 'theme_dark', 'theme_doki', 'theme_green', 'theme_light', 'theme_red', 'theme_sakura', 'theme_sky', 'theme_waifu']
Você pode usar a opção --credentials=USER:PASS para adicionar autenticação HTTP à sua sessão de depuração.
GDBFrontend é desenvolvido principalmente com testes em navegadores baseados em Chromium. Funcionará adequadamente com outros navegadores, especialmente com Firefox, mas se você enfrentar alguns problemas em outros navegadores, pode enviar um relatório de bug.
A maioria das funções do GDBFrontend são thread-safe e funcionam na thread principal do GDB. Portanto, se você executar algo que esteja bloqueando no shell do GDB, as funções do GDBFrontend terão que esperar até que termine.
Você receberá este aviso quando uma função thread-safe do GDBFrontend precisar funcionar e você estiver bloqueando a thread principal do GDB.
(gdb) shell
$ ...

Quando você sair do shell, as funções bloqueantes do GDBFrontend continuarão funcionando.
Nota: Às vezes você pode receber este aviso sem executar nada no shell do GDB, significa que algo (no loop de eventos do GDB) está demorando muito; nesse caso, ignore este aviso.
GDBFrontend envia SIGTERM para seus subprocessos, sua aplicação e seus subprocessos. Se sua aplicação estiver criando novos processos e definindo seus PGIDs, o GDBFrontend pode não fechá-los. Nesse caso, você deve enviar SIGKILL para seus processos.
pkill -f gdb
Se você estiver usando o Avaliador de Expressões com variáveis/membros expandidos em profundidade muito longa, o desempenho de rolagem e movimentação da janela do avaliador pode ser afetado negativamente para a visualização de ponteiros. Nesta situação, você pode desativar as marcações de sinal e slot para essa janela do avaliador.

Na verdade, o gdb-frontend é capaz de rodar no Windows, mas existem alguns problemas sérios na versão Windows do GDB que impedem o uso do gdb-frontend no Windows. Claro que você pode usar o gdb-frontend no WSL se estiver usando Windows 10.
Você pode usar o gdb-frontend no WSL (Subsistema Windows para Linux).
/proc/net/tcp não funciona no WSL. (WSL 2 não tem esse problema.)Desde a v0.2.0-beta, o GDBFrontend mudou para uma nova estratégia de versionamento.
Em vX.Y.Z-STABILITY:
X são versões principais, mudanças de longo prazo com grandes funcionalidades e melhorias.Y são versões principais que incluem novas funcionalidades e melhorias.Z são lançamentos de correção de bugs das versões principais.STABILITY é o nível de estabilidade do lançamento. (alpha,beta,rcN,stable)A documentação é TODO ainda.
A documentação da API é TODO ainda.
Você pode ler o Tutorial de Desenvolvimento de Plugins.
Temas são desenvolvidos como plugins.
Junte-se à comunidade do Discord.
Você pode contribuir fazendo commits no projeto ou desenvolvendo um plugin. Todos os commits são bem-vindos.
| Moeda | Endereço |
|---|---|
| BTC | bc1qhvlc762kwuzeawedl9a8z0duhs8449nwwc35e2 |
| ETH / USDT / USDC | 0x1D99B2a2D85C34d478dD8519792e82B18f861974 |
| XMR | 88qvS4sfUnLZ7nehFrz3PG1pWovvEgprcUhkmVLaiL8PVAFgfHjspjKPLhWLj3DUcm92rwNQENbJ1ZbvESdukWvh3epBUty |
De preferência, doar USDT ou USDC é recomendado, mas você pode doar qualquer uma das moedas acima. 🥳
Copyright (C) 2019, Oğuzhan Eroğlu [email protected] (https://oguzhaneroglu.com/)
Licença Pública Geral GNU v3 (GPL-3)
Você pode copiar, distribuir e modificar o software desde que mantenha o registro de alterações/datas nos arquivos fonte. Quaisquer modificações no software ou software que inclua (via compilador) código licenciado sob GPL também devem ser disponibilizados sob a GPL junto com instruções de construção e instalação.
| Ação | Tecla de Atalho | Contexto |
|---|
| Geral: Abrir um arquivo de código fonte | Ctrl + O | GDBFrontend |
| Geral: Novo Avaliador de Expressões | Ctrl + R | GDBFrontend |
| Geral: Novo Avaliador de Expressões em janela nativa | Ctrl + Shift + R | GDBFrontend |
| Geral: Localizador difuso de código fonte | Ctrl + P | GDBFrontend |
| Runtime: Executar | F5 | GDBFrontend |
| Runtime: Continuar | F6 | GDBFrontend |
| Runtime: Pausa/Interrupção | F7 | GDBFrontend |
| Runtime: Passar por cima | F8 | GDBFrontend |
| Runtime: Entrar | F9 | GDBFrontend |
| Runtime: Instrução passo | F10 | GDBFrontend |
| Runtime: Parar | F11 | GDBFrontend |
| Colaboração Aprimorada: Alternar modo de desenho | Ctrl + Shift + X | GDBFrontend / Colaboração Aprimorada: Habilitada |
| Colaboração Aprimorada: Limpar todos os desenhos | Ctrl + Shift + C | GDBFrontend / Colaboração Aprimorada: Habilitada |