
Seer - a gui frontend to gdb
Seer - uma interface gráfica para gdb no Linux. (Ernie Pasveer [email protected])
Este projeto está sendo ativamente desenvolvido. O objetivo é uma interface gráfica simples e agradável para o gdb.
Por favor, reporte quaisquer bugs ou funcionalidades desejadas para meu e-mail ou crie uma tarefa na minha página do projeto no GitHub.
O Seer pode ser instalado a partir de um gerenciador de pacotes ou a partir do código fonte.
[!NOTE] Certifique-se de que os requisitos sejam atendidos antes de instalar.
Linux
C++17
gdb com interpretador "mi" (verifique executando: gdb --interpreter=mi)
CMake (3.5.0 ou mais recente)
QT6
QT5
Disponível através dos seguintes gerenciadores de pacotes:
$ pamac install seer
$ zypper install seergdb
Site do Flathub. Aqui
$ flatpak install flathub io.github.epasveer.seer
Versões beta do Seer. Página de lançamentos do Seer no github.
Importante: flatpak-spawn --host, necessário no GDB Launcher para executar o gdb. Veja https://github.com/epasveer/seer/issues/377#issuecomment-3620844808.
Baixe seer.flatpak. Instale-o:
$ flatpak install -y --bundle --user seer.flatpak
(Recomendado) O Seer pode ser compilado com Qt6 seguindo as instruções abaixo.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt6
Ele ainda pode ser compilado com Qt5, por enquanto, seguindo as instruções abaixo.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt5
Confira a página Wiki do Seer no github.
O Seer foi projetado para iniciar facilmente o programa a ser depurado a partir da linha de comando. O gdb possui múltiplos métodos para depurar um programa. Portanto, o Seer naturalmente também os possui.
Vá para a Wiki para ver todas as maneiras de executar o Seer.
https://github.com/epasveer/seer/wiki/Starting-Seer
Exemplos das várias visualizações e diálogos do Seer.
A visão principal do Seer se parece com isto:

Source/Function/Types/Variables/Libraries
Informações de Variável/Registrador
Gerenciador de Código.
Breakpoints, Watchpoints, Catchpoints, Printpoints, comandos manuais do gdb e logs.
Quando o diálogo de abrir executável é invocado, ele se parece com isto:

Toda a saída de texto do executável irá para o console do Seer. A entrada de texto para o executável também pode ser inserida através do console.

Normalmente, o Seer mostra apenas o código fonte como abas no Gerenciador de Código. O assembly do programa também pode ser exibido como uma aba.
Selecione "View->Assembly View" e uma aba extra será exibida junto com as abas de código fonte, mostrando o assembly atual sendo executado. Aqui está um exemplo.

Assim como nas abas de código fonte, breakpoints podem ser definidos na aba de assembly. A instrução atual é destacada.
Clicar duas vezes em entradas na aba "Breakpoints" e na aba "Stack frames" mostrará o assembly para esses endereços.
Existem teclas de atalho "Nexti" e "Stepi", conforme definido nas suas configurações. Normalmente "Ctrl+F5" e "CTRL+F6". Usar "^F" na aba de assembly mostrará uma barra de pesquisa poderosa.
O recurso de assembly no Seer é novo. Sinta-se à vontade para sugerir mudanças/recursos.
Ao visualizar o conteúdo da memória bruta no Visualizador de Memória, ele se parece com isto :
| Memory | Disassembly |
|---|---|
![]() | ![]() |
Ao visualizar o conteúdo de arrays no Visualizador de Array, ele se parece com isto :
| Normal | Spline | Scatter |
|---|---|---|
![]() | ![]() | ![]() |
Dois arrays podem ser usados como um gráfico X-Y. Por exemplo, este array simples 'points' forma o contorno X-Y de uma forma.
int main() {
int points[] = {50,1,20,91,97,35,2,35,79,91,50,1};
return 0;
}
| Valores X | Valores Y | Valores XY |
|---|---|---|
![]() | ![]() | ![]() |
Ao visualizar o conteúdo de uma struct C/C++ ou de uma classe C++ no Visualizador de Estrutura, ele se parece com isto. Este exemplo mostra o conteúdo de "*this" para a classe C++ atual em que o Seer está. Todos os membros da estrutura que são tipos básicos podem ser editados.

Há também um Visualizador de Estrutura Básico que é mais leve, mas não pode seguir ponteiros e não pode ser editado.
Ao visualizar o conteúdo da memória bruta que é uma imagem, o Visualizador de Imagem pode ser usado.

Envie um e-mail para [email protected] para quaisquer bugs ou funcionalidades. Ou crie uma tarefa na minha página do projeto no GitHub.
É um mundo maravilhoso.
Informações de pilha (stack frame).
Informações de thread.
Suporta o modo de depuração reversa do Gdb.