[PATCH] D43272: [clangd] Fix tracing now that spans lifetimes can overlap on a thread.

Sam McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 13 19:09:15 PST 2018


sammccall created this revision.
sammccall added a reviewer: ioeric.
Herald added subscribers: cfe-commits, jkorous-apple, ilya-biryukov, klimek.

The chrome trace viewer requires events within a thread to strictly nest.
So we need to record the lifetime of the Span objects, not the contexts.

But we still want to show the relationship between spans where a context crosses
threads, so do this with flow events (i.e. arrows).

Before: https://photos.app.goo.gl/q4Dd9u9xtelaXk1v1
After: https://photos.app.goo.gl/5RNLmAMLZR3unvY83

(This could stand some further improvement, in particular I think we want a
container span whenever we schedule work on a thread. But that's another patch)


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D43272

Files:
  clangd/Trace.cpp
  clangd/Trace.h
  test/clangd/trace.test
  unittests/clangd/TraceTests.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D43272.134154.patch
Type: text/x-patch
Size: 9370 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180214/4dbe6a04/attachment-0001.bin>


More information about the cfe-commits mailing list