You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You can get help using gdbgui in several different ways.
3
2
4
3
### How to use
5
4
* Read documentation on the [homepage](https://github.com/cs01/gdbgui/)
6
5
* Watch videos on the [YouTube channel](https://www.youtube.com/channel/UCUCOSclB97r9nd54NpXMV5A)
7
-
*Join the [gitter chat room](https://gitter.im/gdbgui/Lobby)
8
-
*[Create an issue on github](https://github.com/cs01/gdbgui/issues)
6
+
*Ask a question in the [gdbui chat room](https://gitter.im/gdbgui/Lobby)
7
+
*[Ask question in an issue on github](https://github.com/cs01/gdbgui/issues)
9
8
10
9
### Report a bug / Request a feature
11
10
* Read [CONTRIBUTING.md](https://github.com/cs01/gdbgui/blob/master/CONTRIBUTING.md), then [create an issue on github]('https://github.com/cs01/gdbgui/issues')
12
11
13
12
### Fix a bug / Add a feature
14
13
* See [CONTRIBUTING.md](https://github.com/cs01/gdbgui/blob/master/CONTRIBUTING.md)
15
14
* Join the [gitter chat room](https://gitter.im/gdbgui/Lobby)
16
-
17
-
### Learn more about gdb
18
-
*[Using GNU's GDB Debugger - Memory Layout And The Stack](http://dirac.org/linux/gdb/02a-Memory_Layout_And_The_Stack.php) by Peter Jay Salzman
A modern, browser-based frontend to gdb (gnu debugger). Add breakpoints, view stack traces, and more in C, C++, Go, and Rust! Simply run ``gdbgui`` from the terminal and a new tab will open in your browser. `Screenshots <https://github.com/cs01/gdbgui#screenshots>`_ are below, or check out the `YouTube channel <https://www.youtube.com/channel/UCUCOSclB97r9nd54NpXMV5A>`_ or `Help page <https://github.com/cs01/gdbgui/blob/master/HELP.md>`_ for demos and tutorials.
16
+
A modern, browser-based frontend to gdb (gnu debugger). Add breakpoints, view stack traces, and more in C, C++, Go, and Rust! Simply run ``gdbgui`` from the terminal and a new tab will open in your browser. `See SCREENSHOTS.md <https://github.com/cs01/gdbgui/SCREENSHOTS.md>`_, or check out the `YouTube channel <https://www.youtube.com/channel/UCUCOSclB97r9nd54NpXMV5A>`_ or `Help page <https://github.com/cs01/gdbgui/blob/master/HELP.md>`_ for demos and tutorials.
17
17
18
18
If you are using gdbgui in a commercial setting, `consider donating to the project <https://paypal.me/grassfedcode/20>`_.
19
19
@@ -158,6 +158,9 @@ If your program exits unexpectedly from something like a SEGFAULT, ``gdbgui`` di
@@ -167,8 +170,8 @@ pyPI and this github page are the only official sources of gdbgui.
167
170
168
171
How Does it Work?
169
172
-----------------
170
-
1. The `pygdbmi library <https://github.com/cs01/pygdbmi>`__ manages gdb as a subprocess, and returns structured data to the frontend.
171
-
2. The `Flask-SocketIO <https://flask-socketio.readthedocs.io/en/latest/>`__ server (Flask+websockets) serves the webpage and provides realtime interactivity. http/websocket endpoints are available for the browser. Each websocket connection (browser tab) runs a pygdbmi-managed instance of gdb. A separate coroutine/thread continuously parses and forwards gdb's output to the browser.
173
+
1. The `pygdbmi library <https://github.com/cs01/pygdbmi>`_ manages gdb as a subprocess, and returns structured data to the frontend.
174
+
2. The `Flask-SocketIO <https://flask-socketio.readthedocs.io/en/latest/>`_ server (Flask+websockets) serves the webpage and provides realtime interactivity. http/websocket endpoints are available for the browser. Each websocket connection (browser tab) runs a pygdbmi-managed instance of gdb. A separate coroutine/thread continuously parses and forwards gdb's output to the browser.
172
175
3. The browser manages its ui with mostly vanilla JavaScript and some libraries.
173
176
174
177
The main components of gdbgui are
@@ -186,96 +189,6 @@ The main components of gdbgui are
186
189
4. ``gdbgui.css``: css stylesheet
187
190
188
191
189
-
Screenshots
190
-
-----------
191
-
Enter the binary and args just as you'd call them on the command line. Binary is restored when gdbgui is opened at a later time.
Intuitive control of your program. From left to right: Run, Continue, Next, Step, Return, Next Instruction, Step Instruction, send interrupt signal (SIGINT) to inferior process.
View all threads, the full stack on the active thread, the current frame on inactive threads. Switch between frames on the stack, or threads by pointing and clicking.
View source, assembly, add breakpoints. All symbols used to compile the target are listed in a dropdown above the source code viewer, and have autocompletion capabilities.
All hex addresses are automatically converted to clickable links to explore memory. Length of memory is configurable. In this case 16 bytes are displayed per row.
Choose from any signal your OS supports to send to the inferior. For example, to mock `CTRL+C` in plain gdb, you can send `SIGINT` to interrupt the inferior process. If the inferior process is hung for some reason, you can send `SIGKILL`, etc.
Signals are also recognized by `gdbgui`, and a button is presented to let you step back into the program and inspect the program's state in case it exits unexpectedly.
Arbitrary expressions can be evaluated as well. These expressions persist as the program is stepped through. The base/radix can be modified as desired.
0 commit comments