[all-commits] [llvm/llvm-project] 9bbc0c: [Dexter] Improve performance by evaluating express...

Stephen Tozer via All-commits all-commits at lists.llvm.org
Tue Sep 14 06:10:59 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9bbc0c1ffb47f9cf4c9d8e9a0e8100002fe5aafb
      https://github.com/llvm/llvm-project/commit/9bbc0c1ffb47f9cf4c9d8e9a0e8100002fe5aafb
  Author: Stephen Tozer <Stephen.Tozer at Sony.com>
  Date:   2021-09-14 (Tue, 14 Sep 2021)

  Changed paths:
    M cross-project-tests/debuginfo-tests/dexter/dex/command/CommandBase.py
    M cross-project-tests/debuginfo-tests/dexter/dex/command/commands/DexExpectProgramState.py
    M cross-project-tests/debuginfo-tests/dexter/dex/command/commands/DexExpectWatchBase.py
    M cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerBase.py
    M cross-project-tests/debuginfo-tests/dexter/dex/debugger/dbgeng/dbgeng.py
    M cross-project-tests/debuginfo-tests/dexter/dex/debugger/lldb/LLDB.py
    M cross-project-tests/debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio.py

  Log Message:
  -----------
  [Dexter] Improve performance by evaluating expressions only when needed

Currently, Dexter's model for fetching watch values is to build a list of
expressions to watch before running the debugger, then evaluating all of them at
each breakpoint, then finally looking up the values of these expressions at each
line they were expected on. When using dexter on a large project while watching
many different expressions, this is very slow, as Dexter will make a massive
number of calls made to the debugger's API, the vast majority of which are not
being used for anything. This patch fixes this issue by having Dexter only
evaluate expressions at a breakpoint when it will be used by a Dexter command.

Reviewed By: jmorse

Differential Revision: https://reviews.llvm.org/D107070




More information about the All-commits mailing list