Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 24 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# gdbplotter

Lightweight Python tool that connects to a running gdb server and visualises data from given memory addresses. Be aware that this only really makes sense on target architectures that allow reading the memory while the target is running (e.g. "Cortex Live Watch"). Tested with various STM32 processors and regular STLinks.
Lightweight Python tool that connects to a running gdb server and visualises data from given memory addresses.

![UI Overview](doc/ui_data_mon.png)

## Features

Expand Down Expand Up @@ -44,10 +46,31 @@ from gdbplotter import gdbparser
# parse gdb output and plot
```

### Specifying your memory regions

![Memory regions](doc/ui_mem_regions.png)

gdbplotter parses its signals based on the base addresses and format strings that you define in the *Memory Regions* tab. You can't run the tool without specifying at least one memory region first.

You can find the base address of your variables by simply starting a gdb instance and with your debug symbols loaded:

```
gdb
>file main.elf
>target remote localhost:50000
>print &variable
```

The format string structure for decoding the fields of your data region can be looked up in the [Python documentation](https://docs.python.org/3/library/struct.html#format-characters)

## Configuration

Upon first run of the GUI, the tool will create a file called `gdbplotter_config.json` in the working directory — edit this to change default behavior (input paths, plotting options, etc.).

## Tests

There is a small test helper in `test/gdbservermock.py` for development. Run tests or examples manually as needed.

## Note

Be aware that this only really makes sense on target architectures that allow reading the memory while the target is running (e.g. "Cortex Live Watch"). Tested with various STM32 processors and regular STLinks.
Binary file added doc/ui_data_mon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/ui_mem_regions.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 5 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "gdbplotter"
version = "0.1.1"
version = "0.1.2"
description = "Simple UI for printing GDB memory values"
readme = "README.md"
license ={ file = "LICENSE"}
Expand All @@ -18,3 +18,7 @@ dev = [

[project.gui-scripts]
gdbplotter = "gdbplotter.plotter_ui:main"

[project.urls]
homepage = "https://github.com/1atabey1/gdbplotter"
repository = "https://github.com/1atabey1/gdbplotter"
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.