Introdução
Seer - uma interface gráfica para o gdb no Linux. (Ernie Pasveer [email protected])
Este projeto está em desenvolvimento ativo. O objetivo é uma interface gráfica simples, mas agradável, para o gdb.
Por favor, reporte quaisquer bugs ou funcionalidades desejadas para o meu email ou crie uma tarefa na página do meu
projeto no GitHub.
Instalação
O Seer pode ser instalado a partir de um gestor de pacotes ou a partir do código-fonte.
[!NOTE]
Certifique-se de que os requisitos são cumpridos antes de instalar.
Requisitos
Instalar a partir de pacote
Disponível através dos seguintes gestores de pacotes:
Pamac (Manjaro)
$ pamac install seer
zypper (openSUSE Tumbleweed)
$ zypper install seergdb
Flathub
Site do Flathub. Aqui
$ flatpak install flathub io.github.epasveer.seer
Flatpak
Versões Beta do Seer. Página de lançamentos do Seer no github.
Importante: flatpak-spawn --host, necessário em GDB Launcher para executar o gdb. Veja https://github.com/epasveer/seer/issues/377#issuecomment-3620844808.
Descarregue seer.flatpak. Instale-o:
$ flatpak install -y --bundle --user seer.flatpak
Snap
Versões Beta do Seer. Página de lançamentos do Seer no github.
$ snap install seergdb_<version>.snap --dangerous
Instalar a partir do código-fonte
(Recomendado) O Seer pode ser compilado com Qt6 seguindo as instruções abaixo.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt6
Ainda pode ser compilado com Qt5, por enquanto, seguindo as instruções abaixo.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt5
NOVIDADES
Consulte a página Wiki do Seer no github.
- A versão v1.17 será o último lançamento para Qt5.
- O próximo lançamento será a v2.0 e será baseado em Qt6. No entanto, por enquanto, ainda pode ser compilado com Qt5.
- Se quiser o código-fonte estável mais recente para Qt5, obtenha a v1.17 aqui: https://github.com/epasveer/seer/releases/tag/v1.17
Iniciar o Seer
O Seer foi concebido para iniciar facilmente o programa a depurar a partir da linha de comandos. O gdb tem múltiplos
métodos para depurar um programa. Por isso, o Seer naturalmente também tem.
Vá à Wiki para ver todas as formas de executar o Seer.
https://github.com/epasveer/seer/wiki/Starting-Seer
Visão geral da interface gráfica
Exemplos das várias vistas e diálogos do Seer.
Vista Principal
A vista principal do Seer tem este aspeto:

-
Source/Function/Types/Variables/Libraries
- A lista de ficheiros de código-fonte/cabeçalho que foram usados no programa.
- Pesquise por Functions, Types e Static Variables.
Um duplo clique abrirá o ficheiro de código-fonte.
- A lista de bibliotecas partilhadas referenciadas pelo programa.
- A lista de ficheiros de código-fonte/cabeçalho pode ser pesquisada. Isto irá "encolher" a lista de ficheiros apresentada.
- Um duplo clique num ficheiro irá abri-lo no Code Manager.
-
Variable/Register Info
- Mostrar valores de variáveis e registos.
- "Logger" - registar o valor de uma variável. Introduza-o manualmente ou faça duplo clique na variável no ficheiro
que está aberto no code manager.
- "Tracker" - criar uma lista de variáveis para mostrar o valor sempre que o gdb atinge um ponto de paragem
(step, next, finish, etc.). Quando o ponto de paragem é atingido, todas as variáveis na lista mostrarão
o seu potencial novo valor.
- "Registers" - mostrar os valores de todos os registos da cpu.
-
Code Manager.
- A grande área da parte central da interface gráfica do Seer.
- Os ficheiros de código-fonte são abertos nesta vista.
- O texto num ficheiro pode ser pesquisado com ^F.
- As variáveis podem ser adicionadas ao "Logger" fazendo duplo clique no nome da variável.
Duplo clique com a tecla CTLR pressionada irá preceder a variável com "".
Duplo clique com a tecla SHIFT pressionada irá preceder a variável com "&".
Duplo clique com as teclas CTRL+SHIFT pressionadas irá preceder a variável com "&".
- As variáveis podem ser adicionadas ao "Tracker" selecionando o nome da variável e RMB e selecionando
"Add variable to Tracker".
- As variáveis podem ser adicionadas ao "Memory Visualizer" selecionando o nome da variável e RMB e selecionando
"Add variable to Memory Visualizer".
- Um breakpoint/printpoint pode ser criado com RMB numa linha específica.
- Pode executar até uma linha específica com RMB numa linha específica.
- Os separadores nesta vista podem ser destacados fazendo duplo clique num separador.
-
Breakpoints, Watchpoints, Catchpoints, Printpoints, comandos gdb manuais e registos.
- A área abaixo do Code Manager.
- Comandos manuais. Introduza manualmente um comando gdb ou gdbmi.
Os comandos são memorizados para a próxima utilização do Seer.
- Gestor de breakpoints. Criar e gerir breakpoints.
- Gestor de watchpoints. Criar e gerir watchpoints.
Um watchpoint monitoriza quando uma variável é acedida (leitura, escrita, leitura/escrita).
- Gestor de catchpoints. Criar e gerir catchpoints.
Um catchpoint para a execução numa chamada C++ throw/rethrow/catch.
- Gestor de printpoints. Criar e gerir printpoints.
Um printpoint é como um breakpoint, mas permite imprimir variáveis nesse
printpoint. Veja a chamada 'dprintf' do gdb.
- Saída do GDB. Um registo de qualquer saída do próprio programa gdb.
- Saída do Seer. Um registo de qualquer saída do próprio programa Seer. Como diagnóstico.
- Os separadores nesta vista podem ser destacados fazendo duplo clique num separador.
-
Informação de stack frame.
- Lista de stack frames. Pode fazer duplo clique num frame para alterar o âmbito (a função atual).
- Argumentos de stack frame. Para cada frame, imprimir os argumentos passados a cada função.
- Locais da stack. Para a função atual, imprimir os valores das variáveis locais.
-
Informação de threads.
- Ids de threads. Uma lista de todas as threads. Faça duplo clique num id de thread para alterar o âmbito (a thread atual).
- Frames de threads. Para cada thread, listar os seus stack frames.
-
Suporta o modo Reverse Debugging do Gdb.
- Ativar ou desativar a gravação de instruções.
- Definir a direção de reprodução para a frente ou para trás.
Diálogo de Abertura
Quando o diálogo de abertura de executável é invocado, tem este aspeto:

Consola do Seer