summaryrefslogtreecommitdiffstats
path: root/lldb/source/Host/common/FileSpec.cpp
diff options
context:
space:
mode:
authorAlexey Samsonov <vonosmas@gmail.com>2014-11-04 18:41:38 +0000
committerAlexey Samsonov <vonosmas@gmail.com>2014-11-04 18:41:38 +0000
commit3931dca7eca07798e1fcf2c0bb40252cc9aed567 (patch)
treebb95c1ad02615f6a68cc439c6f08aa2d8e93c8c0 /lldb/source/Host/common/FileSpec.cpp
parent649f172c170ed54c40cba52d193f347e0864ad86 (diff)
downloadbcm5719-llvm-3931dca7eca07798e1fcf2c0bb40252cc9aed567.tar.gz
bcm5719-llvm-3931dca7eca07798e1fcf2c0bb40252cc9aed567.zip
[TSan] Keep original function and filename in ReportStack.
TSan used to do the following transformations with data obtained from the symbolizer: 1) Strip "__interceptor_" prefix from function name. 2) Use "strip_path_prefix" runtime flag to strip filepath. Now these transformations are performed right before the stack trace is printed, and ReportStack structure contains original information. This seems like a right thing to do - stripping is a detail of report formatting implementation, and should belong there. We should, for example, use original path to source file when we apply suppressions. This change also make "strip_path_prefix" flag behavior in TSan consistent with all the other sanitizers - now it should actually match *the prefix* of path, not some substring. E.g. earlier TSan would turn "/usr/lib/libfoo.so" into "libfoo.so" even if strip_path_prefix was "/lib/". Finally, strings obtained from symbolizer come from internal allocator, and "stripping" them early by incrementing a "char*" ensures they can never be properly deallocated, which is a bug. llvm-svn: 221283
Diffstat (limited to 'lldb/source/Host/common/FileSpec.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud