Hm, why are you sending more then one update request?
I was wondering the same and i will investigate, but this does not solve the Problem. The function
DebuggerGDB::AddMemoryRange(uint64_t address, uint64_t size, const wxString &symbol, bool update)
has an update flag, that triggers the update for all windows. So lets say we are paused, the user adds a memory watch -> all windows are getting updated, but only one watch has really new values. This triggers the problem that i have with my internal buffer gets overwritten for all windows. I probably could mitigate this, by looking if the debugger state has changed (listening to cursor changed ecc) but then again, i do not know what watch is new...
Why don't you gather how many watches need to be requested and then do this in one go?
See above. This works on pause event, but not when a user adds a new watch...
I suppose we could add "generation id" or something similar to the cbEVT_DEBUGGER_UPDATED, so you can detect which event you're currently handling.
can you explain more what this generation id is?