mirror of
https://github.com/dart-lang/sdk
synced 2024-11-02 12:24:24 +00:00
a98500a139
Previously, Code objects of invisible functions were retained in order to omit frames corresponding to such functions from stack traces when stack trace is printed. This change drops Code objects of invisible functions. That also means that frames corresponding to such functions are no longer skipped in binary DWARF stack traces. In order to account for that, DW_AT_artificial attribute is added to generated DWARF debug information to mark invisible functions. Stack trace decoding now looks at this attribute and skips those frames when symbolizing stack trace. Flutter gallery in release-sizeopt mode: Heap size of snapshot objects -4.2% (arm), -4.4% (arm64). A large application in --dwarf_stack_traces mode: Number of discarded Code objects increased from 72.4% to 83.7% (out of all Code objects). Heap size of Code objects -37.4%. Heap size of all snapshot objects -5%. TEST=tests/standalone/dwarf_stack_trace_invisible_functions_test.dart Issue: https://github.com/dart-lang/sdk/issues/44852 Change-Id: Ib804852aba1e083670f1d9b9d66cbaab7dcdcff9 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/196583 Commit-Queue: Alexander Markov <alexmarkov@google.com> Reviewed-by: Tess Strickland <sstrickl@google.com> Reviewed-by: Ryan Macnak <rmacnak@google.com> |
||
---|---|---|
.. | ||
co19 | ||
co19_2 | ||
corelib | ||
corelib_2 | ||
dartdevc | ||
dartdevc_2 | ||
ffi | ||
ffi_2 | ||
language | ||
language_2 | ||
lib | ||
lib_2 | ||
modular | ||
standalone | ||
standalone_2 | ||
web | ||
web_2 | ||
legacy_status_dart2js.csv | ||
README.md |
This directory contains tests of the language and core library implementations. For more information, see https://github.com/dart-lang/sdk/wiki/Testing.