Developer forums (C::B DEVELOPMENT STRICTLY!) > Plugins development
[New plugin] cbSystemView for embedded development
oBFusCATed:
Nope. Just cherry pick them and push them. I don't like the idea of automatic pulls, nor merge-push-generate-stupid-message thing github does. And some of the changes aren't meant to be pushed. If it has temp in the commit this commit is experimental.
I'd stick to a linear history, because it is possible that we'll want to put the sources in the main repo.
p.s. Should I push the changes to codeblocks?
BlueHazzard:
Ok, i looked now a bit more, and i have some suggestions:
1) Update the memory range only once, like the watches:
--- Code: ---diff --git a/src/plugins/debuggergdb/gdb_driver.cpp b/src/plugins/debuggergdb/gdb_driver.cpp
index e844ad69d..f4797e563 100644
--- a/src/plugins/debuggergdb/gdb_driver.cpp
+++ b/src/plugins/debuggergdb/gdb_driver.cpp
@@ -692,14 +692,18 @@ void GDB_driver::UpdateWatches(cb::shared_ptr<GDBWatch> localsWatch, cb::shared_
void GDB_driver::UpdateMemoryRangeWatches(MemoryRangeWatchesContainer &watches)
{
+ bool updateWatches = false;
for (cb::shared_ptr<GDBMemoryRangeWatch> &watch : watches)
{
if (watch->IsAutoUpdateEnabled())
{
QueueCommand(new GdbCmd_MemoryRangeWatch(this, watch));
- QueueCommand(new DbgCmd_UpdateWindow(this, cbDebuggerPlugin::DebugWindows::MemoryRange));
+ updateWatches = true;
}
}
+
+ if(updateWatches)
+ QueueCommand(new DbgCmd_UpdateWindow(this, cbDebuggerPlugin::DebugWindows::MemoryRange));
}
void GDB_driver::UpdateWatch(const cb::shared_ptr<GDBWatch> &watch)
--- End code ---
2) It would be cool to have a function, to add a bulk of watches, or to tell the DebuggerGDB::AddMemoryRange function to not perform an update right now (DebuggerGDB::AddMemoryRange(uint64_t address, uint64_t size, const wxString &symbol, bool update = true)). The reason is, if i add a lot watches (like expanding the whole svd register tree at once) i get 1000 of update events (effectively for every memory range i add one). One possibility to solve this would be to pack all registers to one big memory watch, but i do not think that this is possible. The registers can have spaces between the memory ranges so that they can not be collected in one big memory range. This is not a show stopper for now, but it would be nice to have it in mind... This probably could also be helpful for the normal watches...
[edit:] About 2) if we extend AddMemoryRange with the not update parameter, probably a function to perform an update now would also be a nice to have (but not a necessity)
oBFusCATed:
Both things should be fixed in both codeblocks and plugin...
See the previously mentioned branches for the code.
Any testing would be helpful and welcome.
I plan to commit the changes to C::B's trunk in the next two weeks after I've the chance to use them in more of a production environment.
BlueHazzard:
Hi, i sadly hat not the time to fully test it...
I have some problems with my debugger...
But as far as i can tell it compiles :)
Do not know if i find time tomorrow...
oBFusCATed:
The changes to the Debugger API are in trunk. Now plugins had to be updated. Unfortunately the PythonDebugger would be broken :(
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version