-
Notifications
You must be signed in to change notification settings - Fork 18
Description
A useful feature of the debugger is to "analysis hold" on during debugging. This way, the analysis is limited to the currently visible functions which significantly reduce the likely unnecessary analysis updates. However, when we need to rebase the input binary, the effect is severely limited during launch
To start with, during launch, if we have previously enabled analysis hold, we will have to disable it temporarily (
debugger/core/debuggercontroller.cpp
Line 1156 in a046bcd
data->SetAnalysisHold(false); |
As a result, we can only turn analysis hold back on after the analysis completes (
debugger/core/debuggercontroller.cpp
Line 1171 in a046bcd
rebasedView->SetAnalysisHold(true); |
I know this probably would not be easy not fix -- a potential improvement is to ensure that during rebasing, "basic" analysis info like basic blocks are not discarded. But that means they need to be updated in place (to account for the new base), which may or may not be easy to do. Also, while having the basic blocks info definitely helps the debugger, the lack of complete analysis info may lead to subtle debugger behavioral differences, e.g., the missing of variables could affect how the debugger annotate them. So it sounds like this couldn't really be resolved until we have a complete overhaul of the rebase? Well I dunno, just dumping my observations and thoughts here for later reference