dart-sdk/tests
Alexander Markov a98500a139 [vm/aot] Discard Code objects of invisible functions
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>
2021-04-27 23:31:02 +00:00
..
co19
co19_2
corelib
corelib_2
dartdevc
dartdevc_2
ffi [vm/ffi] Array dimensions non-positive check in CFE 2021-04-27 06:56:28 +00:00
ffi_2 [vm/ffi] Array dimensions non-positive check in CFE 2021-04-27 06:56:28 +00:00
language Revert "Issue 45672. Report constant errors when null value where non-nullable type is expected." 2021-04-27 21:42:21 +00:00
language_2 Enable experiment generic_metadata 2021-04-27 20:16:08 +00:00
lib Enable experiment generic_metadata 2021-04-27 20:16:08 +00:00
lib_2
modular
standalone [vm/aot] Discard Code objects of invisible functions 2021-04-27 23:31:02 +00:00
standalone_2 [vm/aot] Discard Code objects of invisible functions 2021-04-27 23:31:02 +00:00
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.