• rmcilroy's avatar
    [Interpreter] Add option to trace bytecode execution. · 6399fce5
    rmcilroy authored
    Adds --trace-ignition flag which allows tracing of bytecodes as they
    execute. As well as printing out the bytecode, this also prints out the
    input and output registers to each operation. The generated output looks
    as follows:
    
     -> 0x350cb46d5264 (139) : 49 fc fb 03 07    Call r4, r5, #3, [7]
          [ accumulator -> 0x177fba00bc99 <JS Array[2]> ]
          [          r4 -> 0x350cb46ce099 <JS Function InstallFunctions (SharedFunctionInfo 0x350cb46470c1)> ]
          [          r5 -> 0x350cb46cddc1 <an Object with map 0x35fdf590a3a9> ]
          [          r6 -> 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
          [          r7 -> 2 ]
          [ accumulator <- 0x350cb4604189 <undefined> ]
     -> 0x350cb46d5978 (47) : 4b f8 00 00 00    CallRuntime [248], r0, #0
          [ accumulator -> 0x350cb4604189 <undefined> ]
          [ accumulator <- 0x350cb4604189 <undefined> ]
     -> 0x350cb46d597d (52) : 23 09             Ldar a0
          [ accumulator -> 0x350cb4604189 <undefined> ]
          [          a0 -> 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
          [ accumulator <- 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
     -> 0x350cb46d597f (54) : 24 fd             Star r3
          [ accumulator -> 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
          [ accumulator <- 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
          [          r3 <- 0x350cb46d3f11 <JS Function Proxy (SharedFunctionInfo 0x350cb46d3e61)> ]
    
    Also adds support for --print_source and --print-ast to the interpreter.
    
    BUG=v8:4280
    LOG=N
    
    Review URL: https://codereview.chromium.org/1640213002
    
    Cr-Commit-Position: refs/heads/master@{#33594}
    6399fce5
Name
Last commit
Last update
benchmarks Loading commit data...
build Loading commit data...
docs Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party/binutils Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
Makefile.nacl Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...