summaryrefslogtreecommitdiffstats
path: root/lldb/scripts/interface
diff options
context:
space:
mode:
authorAleksandr Urakov <aleksandr.urakov@jetbrains.com>2018-11-30 09:45:52 +0000
committerAleksandr Urakov <aleksandr.urakov@jetbrains.com>2018-11-30 09:45:52 +0000
commit9b087d2ce61e70e64c16ea5e88d68235148ba44f (patch)
tree962e99f82867aa890996a34d939be927534f08fe /lldb/scripts/interface
parentbc96a98ed0a548992fa305e6e4a9f1496156466b (diff)
downloadbcm5719-llvm-9b087d2ce61e70e64c16ea5e88d68235148ba44f.tar.gz
bcm5719-llvm-9b087d2ce61e70e64c16ea5e88d68235148ba44f.zip
[Target] Do not skip a stop on a breakpoint if a plan was completed
Summary: This patch fixes the next situation. On Windows clang-cl makes no stub before the main function, so the main function is located exactly on module entry point. May be it is the same on other platforms. So consider the following sequence: - set a breakpoint on main and stop there; - try to evaluate expression, which requires a code execution on the debuggee side. Such an execution always returns to the module entry, and the plan waits for it there; - the plan understands that it is complete now and removes its breakpoint. But the breakpoint site is still there, because we also have a breakpoint on entry; - StopInfo analyzes a situation. It sees that we have stopped on the breakpoint site, and it sees that the breakpoint site has owners, and no one logical breakpoint is internal (because the plan is already completed and it have removed its breakpoint); - StopInfo thinks that it's a user breakpoint and skips it to avoid recursive computations; - the program continues. So in this situation the program continues without a stop right after the expression evaluation. To avoid this an additional check that the plan was completed was added. Reviewers: jingham, zturner, boris.ulasevich Reviewed by: jingham Tags: #lldb Differential Revision: https://reviews.llvm.org/D53761 llvm-svn: 347974
Diffstat (limited to 'lldb/scripts/interface')
-rw-r--r--lldb/scripts/interface/SBModule.i3
1 files changed, 3 insertions, 0 deletions
diff --git a/lldb/scripts/interface/SBModule.i b/lldb/scripts/interface/SBModule.i
index adda954e5bf..32b771c4d02 100644
--- a/lldb/scripts/interface/SBModule.i
+++ b/lldb/scripts/interface/SBModule.i
@@ -332,6 +332,9 @@ public:
lldb::SBAddress
GetObjectFileHeaderAddress() const;
+ lldb::SBAddress
+ GetObjectFileEntryPointAddress() const;
+
bool
operator == (const lldb::SBModule &rhs) const;
OpenPOWER on IntegriCloud