| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Seer - a gui frontend to gdb for Linux. (Ernie Pasveer epasveer@att.net)
This project is actively worked on. The aim is a simple, yet pleasing gui to gdb.
Please report any bugs or desired features to my email or create a task in my GitHub project page.
As of the v1.9 release, the Seer binary is now named 'seergdb'. Previously it was named 'seer'. This is to remove a possibly confusion with an existing project with the same name. And, hopefully, will allow easier packaging of Seer into distributions.
Examples of the various Seer views and dialogs.
The main view for Seer looks like:

Source/Function/Types/Variables/Libraries
Variable/Register Info
Code Manager.
Breakpoints, Watchpoints, Catchpoints, Printpoints, manual gdb commands, and logs.
Stack frame information.
Thread information.
Supports Gdb's Reverse Debugging mode.
When the open executable dialog is invoked, it looks like this :

All text output from the executable will go to the Seer console. Text input for the executable can be entered via the console too.

Normally Seer will just show the source code as tabs in the Code Manager. The program's assembly can also be show as a tab.
Select "View->Assembly View" and an extra tab will be shown along side the source code tabs that shows the current assembly being executed. Here is an example.

Like the source code tabs, breakpoints can be set in the assemby tab. The current instruction is highlighted.
Double-clicking on entries in the "Breakpoints" tab and the "Stack frames" tab will show the assembly for those addresses.
There are "Nexti" and "Stepi" hot-keys, as defined by your config settings. Normally "Ctrl+F5" and "CTRL+F6". Using "^F" in the assembly tab will show a powerful search bar.
The assembly feature in Seer is new. Feel free to suggest changes/features.
When looking at the contents of raw memory in the Memory Visualizer, it looks like this :
| Memory | Disassembly |
|---|---|
![]() |
![]() |
When looking at the contents of arrays in the Array Visualizer, it looks like this :
| Normal | Spline | Scatter |
|---|---|---|
![]() |
![]() |
![]() |
Two arrays can be used as an X-Y plot. For example, this simple 'points' array forms the X-Y outline of a shape.
int main() {
int points[] = {50,1,20,91,97,35,2,35,79,91,50,1};
return 0;
}
| X values | Y values | XY Values |
|---|---|---|
![]() |
![]() |
![]() |
When looking at the contents of a C/C++ struct or a C++ class in the Struct Visualizer, it looks like this. This example shows the contents of "*this" for the current C++ class that Seer is in.
Seer is meant to easily start the program to debug from the command line. gdb has multiple methods for debugging a program. So Seer natually does too.
% seergdb --start myprog arg1 arg2 # Debug myprog with its arguments. Break in main().
% seergdb --run myprog arg1 arg2 # Debug myprog with its arguments. Run it immediately without breaking.
% seergdb --attach <pid> myprog # Debug myprog by attaching to the currently running pid.
% seergdb --connect <host:port> myprog # Debug myprog by connecting to the currently started gdbserver process.
% seergdb --core <corefile> myprog # Debug a corefile for myprog.
% seergdb # Bring up a dialog box to set the program and debug method.
% seergdb myprog arg1 arg2 # Bring up a dialog box to set the debug method.
% seergdb --config # Bring up Seer config dialog.
# Save settings with 'Settings->Save Configuration'.
A breakpoint file can be read for --start and --run modes. This file contains previously saved breakpoints (breakpoints, catchpoints, printpoints, etc.)
% seergdb --run --bl myprog.brk myprog arg1 arg2 # Debug myprog with its arguments.
# Run it immediately and break at points describe in
# myprog.brk
A breakpoint function can be set for --start and --run modes. The function can be a function name or an address (eg: _start or 0xadad23220)
% seergdb --run --bf _start myprog arg1 arg2 # Debug myprog with its arguments.
# Run it immediately and break in the function '_start'.
The Assembly Tab can be shown for --start and --run modes.
% seergdb --start --sat yes myprog arg1 arg2 # Debug myprog with its arguments.
# Break in "main" and show the Assemby Tab.
The program's starting address can be randomizes for --start and --run modes. Normally gdb runs the program with no start address randomization.
% seergdb --start --sar yes myprog arg1 arg2 # Debug myprog with its arguments.
# The program's start address is randomized.
See "-h" for the full Seer help.
% seergdb -h
Some of the command line options can be permamently set in the Seer configuration.
% seergdb --config # Bring up Seer config dialog.
# Save settings with 'Settings->Save Configuration'.
Download the latest code using 'clone'.
% git clone https://github.com/epasveer/seer
Setup cmake and build
% cd seer/src % mkdir build % cd build % cmake .. % make seergdb
Copy the Seer binary to your bin directory of choice. One of the below. May need root access.
% cd seer/src/build % cp seergdb ~/bin/seergdb % cp seergdb /usr/local/bin/seergdb % cp seergdb /usr/bin/seergdb % rehash
Or use the 'install' make target. Which will usually copy it to /usr/local/bin. May need root access.
% cd seer/src/build % sudo make install
For Debian based releases, you can use the normal tooling to build a .deb package containing Seer. You need the build-essential package installed.
% cd seer % dpkg-buildpackage
Send an email to epasveer@att.net for any bugs or features. Or create a task in my GitHub project page.
| Back | FazBrowse Home | New Git URL |