bloombloombloom / Bloom

A debug interface for AVR-based embedded systems development on GNU/Linux.
https://bloom.oscillate.io/
Other
64 stars 3 forks source link

Persist memory regions across execution cycles #19

Closed navnavnav closed 2 years ago

navnavnav commented 2 years ago

Currently, when using memory regions in the memory inspection panes, the regions are persisted across debug sessions. So stopping and starting a new session doesn't mean losing the defined memory regions. But this doesn't apply for execution cycles. When a user closes Bloom, they lose any defined regions, and have to recreate them upon starting Bloom again. This can be a source of frustration.

Outside of the Bloom configuration file (bloom.json), Bloom doesn't really have any place to save settings that are specific to both the project and the user. I don't think region definitions should be saved in bloom.json, as they are also specific to the user, not just the project.

I think it would be best to introduce a hidden settings directory, to live in the project root. Something like .bloom. In here, we will store all project-user specific settings. The directory should be excluded from the user's VCS. This will be made clear in the Bloom docs.

navnavnav commented 2 years ago

Quick update on this:

I've made some good progress. Bloom will now save settings into the ./.bloom directory, relative to the project root. These settings will include memory regions for each memory type, as well as the hex viewer settings.

The settings will be loaded from the settings file on startup, and saved back to the settings file on shutdown. So effectively, regions are now persisted through execution cycles, meaning users don't have to keep recreating them every time they close Bloom.

I've got a few more things to do in this branch, to ensure that the loaded settings are properly validated, then it will be ready to merge into develop.

These changes will be included in v0.6.0.

navnavnav commented 2 years ago

Quick update:

Testing of Bloom's ability to save memory regions on exit seems to be going really well.

I've also added a few other small things to this branch:

Signed integer type for focused memory regions:

image

image

Endianness of focused memory regions is now configurable:

image

I'm probably going to ship these changes in a small feature release. Maybe next week.

navnavnav commented 2 years ago

This was released in v0.6.0. Closing this ticket.