This is an archive of the discontinued LLVM Phabricator instance.

[TSan] Use StackTrace from sanitizer_common where applicable
ClosedPublic

Authored by samsonov on Oct 27 2014, 2:51 PM.

Details

Summary

This change removes __tsan::StackTrace class. There are
now three alternatives:

  1. Lightweight __sanitizer::StackTrace, which doesn't own a buffer of PCs. It is used in functions that need stack traces in read-only mode, and helps to prevent unnecessary allocations/copies (e.g. for StackTraces fetched from StackDepot).
  2. __sanitizer::BufferedStackTrace, which stores buffer of PCs in a constant array. It is used in TraceHeader (non-Go version)
  3. __tsan::VarSizeStackTrace, which owns buffer of PCs, dynamically allocated via TSan internal allocator.

Diff Detail

Event Timeline

samsonov updated this revision to Diff 15500.Oct 27 2014, 2:51 PM
samsonov retitled this revision from to [TSan] Use StackTrace from sanitizer_common where applicable.
samsonov updated this object.
samsonov edited the test plan for this revision. (Show Details)
samsonov added a reviewer: dvyukov.
samsonov added subscribers: kcc, Unknown Object (MLST).
samsonov updated this revision to Diff 15501.Oct 27 2014, 2:56 PM

Remove already addressed FIXME.

Kostya, do you have any comments about this, or we'll defer this to Dmitry?

kcc accepted this revision.Nov 3 2014, 2:04 PM
kcc added a reviewer: kcc.

LGTM,
No comments, but please test on Go

This revision is now accepted and ready to land.Nov 3 2014, 2:04 PM
samsonov updated this object.Nov 3 2014, 2:31 PM
samsonov edited edge metadata.
samsonov updated this object.
samsonov updated this object.
samsonov updated this object.
samsonov closed this revision.Nov 3 2014, 2:34 PM