llvm-project/lldb
Jaroslav Sevcik 089cfe113d Improve step over performance
Summary:
This patch improves step over performance for the case when we are
stepping over a call with a next-branch-breakpoint (see
https://reviews.llvm.org/D58678), and we encounter a stop during the
call. Currently, this causes the thread plan to step-out //each frame//
until it reaches the step-over range. This is a regression introduced by
https://reviews.llvm.org/D58678 (which did improve other things!). Prior
to that change, the step-over plan would always step-out just once.

With this patch, if we find ourselves stopped in a deeper stack frame
and we already have a next branch breakpoint, we simply return from the
step-over plan's ShouldStop handler without pushing the step out plan.

In my experiments this improved the time of stepping over a call that
loads 12 dlls from 14s to 5s. This was in remote debugging scenario with
10ms RTT, the call in question was Vulkan initialization
(vkCreateInstance), which loads various driver dlls. Loading those dlls
must stop on the rendezvous breakpoint, causing the perf problem
described above.

Reviewers: clayborg, labath, jingham

Reviewed By: jingham

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D76216
2020-03-20 11:41:56 +01:00
..
bindings [lldb/Bindings] Check that process isn't None before calling is_alive. 2020-03-17 17:06:04 -07:00
cmake [lldb][cmake] Move remove_module_flags macro to AddLLDB.cmake 2020-03-06 17:21:24 -08:00
docs Revert "Revert "[lldb/Docs] Mark both Python 3.6 and 3.8 as supported on Windows"" 2020-03-03 20:43:16 +01:00
examples [lldb] Make gdbremote.py utility py2and3 compatible 2020-02-13 09:18:55 +01:00
include/lldb Reland [lldb] Fix string summary of an empty NSPathStore2 2020-03-19 18:50:26 +01:00
packages/Python/lldbsuite [lldb] fix typo in comment for lldbtest.py 2020-03-19 10:08:11 -04:00
resources
scripts [lldb/Scripts] Remove swig_bot_lib/__init__.py 2020-01-16 09:15:41 -08:00
source Improve step over performance 2020-03-20 11:41:56 +01:00
test [lldb] Enable now passing part of TestDataFormatterStdString.py 2020-03-20 11:35:15 +01:00
third_party/Python/module Increase timeout in pexpect to lower chances of tests failing under ASAN. 2019-10-10 16:16:49 +00:00
tools [debugserver] Implement hardware breakpoints for ARM64 2020-03-19 11:55:48 -07:00
unittests [lldb/PlatformDarwin] Expose current toolchain and CL tools directory 2020-03-18 15:08:24 -07:00
utils [lldb/Utils] Use PYTHON_EXECUTABLE to configure lldb-dotest's shebang 2020-03-15 20:34:17 -07:00
.clang-format
.clang-tidy [lldb] Add .clang-tidy with customization to disable readability-identifier-naming 2020-03-09 12:50:28 -07:00
.gitignore Add .noindex to the gitignore 2019-04-05 17:57:42 +00:00
CMakeLists.txt [lldb/Cmake] Add a CMakeLists.txt to the utils directory... 2020-01-16 22:31:01 -08:00
CODE_OWNERS.txt [lldb][NFC] Cleanup mentions and code related to lldb-mi 2019-07-19 15:55:23 +00:00
LICENSE.TXT
use_lldb_suite_root.py