• pierre.langlois's avatar
    [perf-prof] Fix erroneous code offsets in unwinding info · 21f064fc
    pierre.langlois authored
    The unwinding information we emit wrongly encodes code locations as relative
    offsets. If we look at the .eh_frame section of shared object generated by "perf
    inject" using "objdump -g":
    
    ~~~
    00000000 0000000000000018 00000000 CIE
    (snip)
    0000001c 0000000000000028 00000020 FDE cie=00000000 pc=fffffffffffffee8..00000000000017f8
    (snip)
    00000048 ZERO terminator
    ~~~
    
    We can see the range that the FDE entry covers is incorrect, it should point to
    where the .text section is, at address 0x40 on a 64-bit architecture.
    
    The reason for this was that the PerfJitLogger logs a code size that is
    different from the one we've used when encoding the unwinding information. The
    logger will ignore the safepoint table while the unwinding info assumes it is
    part of the code.
    
    BUG=
    
    Review-Url: https://codereview.chromium.org/2790403002
    Cr-Commit-Position: refs/heads/master@{#44378}
    21f064fc
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles 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 Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm 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...
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...