summaryrefslogtreecommitdiffstats
path: root/base/debug
Commit message (Collapse)AuthorAgeFilesLines
* Independently enable recording and event callbackwangxianzhu@chromium.org2013-11-204-109/+305
| | | | | | | | | | | | | | | | | | | | Previously we count TraceLog::SetEnabled() and SetDisabled() to allow nested calls from about:tracing and Timeline panel of the DevTools. Actually DevTools only needs the event callbacks, so we can allow the two features (recording for about:tracing, event callback for DevTools) to be independently enabled. Also don't count TraceLog::SetEnabled() and SetDisabled() to ease trace-startup and simplify the API semantics. BUG=none TEST=TraceEventCallbackTest.TraceEventCallbackAndRecording*, TraceEventTestFixture.* R=caseq@chromium.org, nduca@chromium.org, pfeldman@chromium.org, tony@chromium.org TBR=sky (for trivial call site change in content/browser/browser_shutdown_profile_dumper.cc) Review URL: https://codereview.chromium.org/66193005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236078 0039d316-1c4b-4281-b951-d872f2087c98
* Use JsonDoubleQuote to output trace stringwangxianzhu@chromium.org2013-11-152-12/+10
| | | | | | | | | | | | | The original code to output trace string was incomplete that control characters may break the trace file. Use JsonDoubleQuote which can handle the case. BUG=317874 TEST=TraceEventTestFixture.DataCaptured etc. (existing) Review URL: https://codereview.chromium.org/71853002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235382 0039d316-1c4b-4281-b951-d872f2087c98
* ios: Enable -Wunused-functions.thakis@chromium.org2013-11-141-0/+4
| | | | | | | | | BUG=315884 TBR=net,sql owners Review URL: https://codereview.chromium.org/64273005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235014 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 234207 "Set the default ASan options for executables buil..."mpearson@chromium.org2013-11-111-49/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Seems to cause two Chrome Memory bots to fail consistently with the error "Failed cbuildbot failed buildpackages failed report" See these links: http://build.chromium.org/p/chromium.memory/builders/Chromium%20OS%20(x86)%20ASAN http://build.chromium.org/p/chromium.memory/builders/Chromium%20OS%20(amd64)%20ASAN If those links break, mpearson@ has a copy of the failure output (too long to paste here). > Set the default ASan options for executables built with ASan on Linux. > > This CL introduces a module, base/debug/sanitizer_options.cc, which will override > the defaults for various dynamic tools (only ASan at this moment). For every executable > built with a dynamic tool this module will be linked into that executable, providing > weak functions to be called by the tool. > > The existing declaration of __asan_default_options() in chrome/app/chrome_exe_main_gtk.cc > has been moved into sanitizer_options.cc (now every binary built with GOOGLE_CHROME_BUILD=1 > will have the same options as google-chrome-asan. > The existing declaration of __asan_default_options() in chrome/nacl/nacl_helper_linux.cc > has been kept as is, but we had to remove -Wl,-u_sanitizer_options_link_helper to avoid picking sanitizer_options.cc. > > GYP changes for OSX and iOS will be committed separately. > > BUG=302040 > R=thakis@chromium.org > > Review URL: https://codereview.chromium.org/25687005 TBR=glider@chromium.org Review URL: https://codereview.chromium.org/68843003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234232 0039d316-1c4b-4281-b951-d872f2087c98
* Set the default ASan options for executables built with ASan on Linux.glider@chromium.org2013-11-111-0/+49
| | | | | | | | | | | | | | | | | | | | | | This CL introduces a module, base/debug/sanitizer_options.cc, which will override the defaults for various dynamic tools (only ASan at this moment). For every executable built with a dynamic tool this module will be linked into that executable, providing weak functions to be called by the tool. The existing declaration of __asan_default_options() in chrome/app/chrome_exe_main_gtk.cc has been moved into sanitizer_options.cc (now every binary built with GOOGLE_CHROME_BUILD=1 will have the same options as google-chrome-asan. The existing declaration of __asan_default_options() in chrome/nacl/nacl_helper_linux.cc has been kept as is, but we had to remove -Wl,-u_sanitizer_options_link_helper to avoid picking sanitizer_options.cc. GYP changes for OSX and iOS will be committed separately. BUG=302040 R=thakis@chromium.org Review URL: https://codereview.chromium.org/25687005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234207 0039d316-1c4b-4281-b951-d872f2087c98
* mac: Prepare most test code for -Wunused-functions too.thakis@chromium.org2013-11-081-7/+0
| | | | | | | | | | BUG=315884 R=akalin@chromium.org, isherman@chromium.org, thestig@chromium.org, yzshen@chromium.org TBR=piman, sergeyu Review URL: https://codereview.chromium.org/65813002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233737 0039d316-1c4b-4281-b951-d872f2087c98
* Avoid threading races on TraceSamplingThread's membersharaken@chromium.org2013-11-063-40/+30
| | | | | | | | | | | The original CL was landed in https://codereview.chromium.org/26541005/ but the CL caused a dead lock. This CL fixed the issue. NOTRY=true Review URL: https://codereview.chromium.org/28593003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233266 0039d316-1c4b-4281-b951-d872f2087c98
* Ensure TimeOffset is applied to timestamps of traceswangxianzhu@chromium.org2013-11-023-15/+53
| | | | | | | | | | | | | Previously TraceLog::UpdateTraceEventDuration() doesn't consider time_offset_. Added OffsetNow() and OffsetTimestamp() to avoid TimeTicks::NowFromSystemTraceTime() in most part of TraceLog. TEST=TraceEventTestFixture.TimeOffset BUG=none Review URL: https://codereview.chromium.org/52973006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232549 0039d316-1c4b-4281-b951-d872f2087c98
* Avoid crashing if the crash key system is not initialized.jochen@chromium.org2013-10-311-2/+4
| | | | | | | | | | | | I don't want to initialize it from content shell, because I would have to duplicate all crash key registration we do in chrome. BUG=none R=mark@chromium.org, rsesek@chromium.org Review URL: https://codereview.chromium.org/54363004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232119 0039d316-1c4b-4281-b951-d872f2087c98
* Put back debug break instructions for non-x86 OSsjochen@chromium.org2013-10-291-8/+14
| | | | | | | | | | | | Turns on out OS_IOS also defines OS_MACOSX BUG=none R=justincohen@chromium.org, mark@chromium.org NOTRY=true Review URL: https://codereview.chromium.org/46883007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231617 0039d316-1c4b-4281-b951-d872f2087c98
* Pass timestamp into trace event callback.alph@chromium.org2013-10-293-7/+21
| | | | | | Review URL: https://codereview.chromium.org/47563004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231574 0039d316-1c4b-4281-b951-d872f2087c98
* Fix trace event ECHO_TO_CONSOLEwangxianzhu@chromium.org2013-10-283-72/+105
| | | | | | | | | | | | | | ECHO_TO_CONSOLE was broken because now every TraceEvent needs to be in the buffer. Now use a small ring buffer instead of the original discarding buffer. Also allow output to console when a duration event ends but the original event has been recycled. BUG=311558 TEST=TraceEventTestFixture.EchoToConsole Review URL: https://codereview.chromium.org/42003003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231407 0039d316-1c4b-4281-b951-d872f2087c98
* On posix, only break into debugger when a debugger is presentjochen@chromium.org2013-10-281-9/+13
| | | | | | | | | | | | That way, breakpad will generate a minidump on CHECK() and related macros (if breakpad is enabled). BUG=247431 R=mark@chromium.org Review URL: https://codereview.chromium.org/48513002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231341 0039d316-1c4b-4281-b951-d872f2087c98
* Send B/E events to EventCallback for X eventswangxianzhu@chromium.org2013-10-263-2/+47
| | | | | | | | | | | | | This is a quick fix for DevTools to work. Should investigate if sending X events to clients via EventCallback is beneficial and feasible and if yes we should change the API and clients. BUG=trace-viewer:490 TEST=TraceEventCallbackTest.TraceEventCallback Review URL: https://codereview.chromium.org/37623002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231191 0039d316-1c4b-4281-b951-d872f2087c98
* [Tracing] Add support for forward looking or backwards looking async steps.simonjam@chromium.org2013-10-242-30/+64
| | | | | | | | | | | | | | | | Renamed TRACE_EVENT_ASYNC_STEP to TRACE_EVENT_ASYNC_STEP_INTO and added TRACE_EVENT_ASYNC_STEP_PAST. These are mutually exclusive. Users must decide all of their steps are backwards or forwards looking for an async event. Updated callers to use the correct versions. Note that we had both! BUG=None TBR=nduca,mmenke,wjia,hclam Review URL: https://codereview.chromium.org/25536014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230606 0039d316-1c4b-4281-b951-d872f2087c98
* Fix crash when ending systrace webviewwangxianzhu@chromium.org2013-10-231-3/+25
| | | | | | | | | | Now call TraceLog::Flush from a new thread having a message loop. BUG=309627 Review URL: https://codereview.chromium.org/33293002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230528 0039d316-1c4b-4281-b951-d872f2087c98
* Reapply "Remove constructors of TraceEventHandle"wangxianzhu@chromium.org2013-10-232-23/+20
| | | | | | | | | | | | | | | | | | | | | Fixed int assignment warnings on Win. > Remove constructors of TraceEventHandle > > The constructors of TraceEventHandle makes the constructor of > ScopedTracer (which is called even when tracing is not enabled) > initialize the Data structure which we wanted to avoid. > > BUG=trace-viewer:489 > R=dsinclair@chromium.org > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=230224 TBR=ronghuawu Review URL: https://codereview.chromium.org/34493006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230337 0039d316-1c4b-4281-b951-d872f2087c98
* Correct thread flush timeout logic and increase timeoutwangxianzhu@chromium.org2013-10-232-24/+71
| | | | | | | | | | | | | | | | | This is follow-up https://codereview.chromium.org/29803002/ which addressed the blocking thread issue. - increase the timeout to tolerate slow threads; - originally ThreadLocalEventBuffer returns too early on generation mismatch, causing the message loop to remain in thread_message_loops_. Fixed this by checking generation in FlushWhileLocked. - fixed potential locking issue in TraceLog::FlushCurrentThread(); BUG=none TEST=TraceEventTestFixture.ThreadOnceBlocking Review URL: https://codereview.chromium.org/35843002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230296 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 230224 "Remove constructors of TraceEventHandle", which cause compile ↵ronghuawu@chromium.org2013-10-222-20/+23
| | | | | | | | | | | | | | | | | | | | | failure on windows. > Remove constructors of TraceEventHandle > > The constructors of TraceEventHandle makes the constructor of > ScopedTracer (which is called even when tracing is not enabled) > initialize the Data structure which we wanted to avoid. > > BUG=trace-viewer:489 > R=dsinclair@chromium.org > > Review URL: https://codereview.chromium.org/33423006 TBR=wangxianzhu@chromium.org Review URL: https://codereview.chromium.org/34413006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230232 0039d316-1c4b-4281-b951-d872f2087c98
* Remove constructors of TraceEventHandlewangxianzhu@chromium.org2013-10-222-23/+20
| | | | | | | | | | | | | The constructors of TraceEventHandle makes the constructor of ScopedTracer (which is called even when tracing is not enabled) initialize the Data structure which we wanted to avoid. BUG=trace-viewer:489 R=dsinclair@chromium.org Review URL: https://codereview.chromium.org/33423006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230224 0039d316-1c4b-4281-b951-d872f2087c98
* Reduce overhead of TRACE_MEMORY when disabledwangxianzhu@chromium.org2013-10-222-12/+17
| | | | | | | | | | | | Currently when tracing or "memory" category is not enabled, TRACE_MEMORY will generate a funciton call. Inline the checking of 'enabled_' to reduce the overhead. BUG=trace-viewer:489 Review URL: https://codereview.chromium.org/32823005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230177 0039d316-1c4b-4281-b951-d872f2087c98
* TraceLog::SetCurrentThreadBlocksMessageLoop()wangxianzhu@chromium.org2013-10-223-5/+92
| | | | | | | | | | | | | | | | | - When some thread doesn't respond the flush request in time, output the thread name, and suggest calling SetCurrentThreadBlocksMessageLoop from the thread. - For a thread which calls SetCurrentThreadBlocksMessageLoop, trace events from the thread will be added into the main buffer directly, without using the thread local buffer. TEST=TraceEventTestFixture.CurrentThreadBlocksMessageLoop BUG=trace-viewer:486 Review URL: https://codereview.chromium.org/29803002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230012 0039d316-1c4b-4281-b951-d872f2087c98
* TRACE_EVENT_PHASE_COMPLETE (X Events)wangxianzhu@chromium.org2013-10-215-316/+386
| | | | | | | | | | | | | | | | An X event combines a pair of the original B and E events. It can reduce the trace size by about half. Changed TRACE_EVENTx() macros to generate X events. BUG=trace-viewer:142 TEST=Existing TraceEventTextFixture.* tests TEST=TraceEventTextFixture.TraceBufferRingBuffer TEST=TraceEventAnalyzerTest.CompleteDuration TBR=phajdan.jr for trivial updates of trace_event_analyzer. Review URL: https://codereview.chromium.org/23799005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229730 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 228889 "Avoid threading races on TraceSamplingThread's me..."haraken@chromium.org2013-10-181-11/+1
| | | | | | | | | | | | | | | | > Avoid threading races on TraceSamplingThread's members. > > See a TSAN log in the bug for more details. > > BUG=305459 > > Review URL: https://codereview.chromium.org/26541005 TBR=haraken@chromium.org Review URL: https://codereview.chromium.org/28623002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229328 0039d316-1c4b-4281-b951-d872f2087c98
* Avoid threading races on TraceSamplingThread's members.haraken@chromium.org2013-10-161-1/+11
| | | | | | | | | | See a TSAN log in the bug for more details. BUG=305459 Review URL: https://codereview.chromium.org/26541005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228889 0039d316-1c4b-4281-b951-d872f2087c98
* Enable chromium trace when atrace is started.wangxianzhu@chromium.org2013-10-163-65/+33
| | | | | | | | | | | | | | | | The X event change (https://codereview.chromium.org/23799005/) depends on the TraceBuffer to handle X events, so we need to enable chromium trace when using systrace on Android to trace WebView or Chrome. Part of this change is separated from https://codereview.chromium.org/26675003/ which is not ready to submit before WebView and Android are ready for combined trace. BUG=trace-viewer:142 Review URL: https://codereview.chromium.org/26848006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228813 0039d316-1c4b-4281-b951-d872f2087c98
* Fix pointer to local variable used after the variable is out of scope in ETW ↵fdoray@chromium.org2013-10-151-6/+9
| | | | | | | | | | | | | | | | | tracing. In TraceEventETWProvider::TraceEvent, a pointer to |depth| was used after the variable had gone out of scope. Variable |depth| was declared at line 85. Pointer added to EtwMofEvent at line 89. Pointer used when the event is logged at line 94. This CL moves the declaration of the variable to the parent scope. BUG=306831 TEST=No user visible change. R=dsinclair@chromium.org Review URL: https://codereview.chromium.org/27115002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228720 0039d316-1c4b-4281-b951-d872f2087c98
* Invoke LeakSanitizer in BrowserProcessImpl::ReleaseModule().earthdok@chromium.org2013-10-151-0/+4
| | | | | | | | | | | | | | | Leak detection is normally invoked from an AtExit handler which runs very late in the shutdown process. This doesn't play well with Chrome, because memory is often intentionally leaked during shutdown, causing a flood of uninteresting leak reports. Instead we try to invoke leak detection at the earliest possible point in the shutdown process. BUG=307043 R=glider@chromium.org, thestig@chromium.org Review URL: https://codereview.chromium.org/26895007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228621 0039d316-1c4b-4281-b951-d872f2087c98
* Output trace clock markers on Android on start/end of tracingwangxianzhu@chromium.org2013-10-142-0/+21
| | | | | | | | | | | The trace clock markers are for trace-viewer to synchronize the clocks of the chromium trace and atrace when combining them. BUG=294884 Review URL: https://codereview.chromium.org/26675003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228517 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 227219 "Revert 226920 "Roll Clang 188423:191856.""thakis@chromium.org2013-10-121-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This relands the clang roll from r226920. The symbol issue (http://crbug.com/304846) should be fixed by now, on the crash server side. > Revert 226920 "Roll Clang 188423:191856." > > Possibly broke crash symbolication on mac. > > > Roll Clang 188423:191856. > > > > Remove libprofile_rt from package.sh, it doesn't exist after LLVM r191835 > > > > BUG=290204,303886 > > R=thakis@chromium.org > > TBR=net owner > > NOTRY=true > > > > Review URL: https://codereview.chromium.org/25875004 > > TBR=thakis@chromium.org > > Review URL: https://codereview.chromium.org/26145004 TBR=thakis@chromium.org Review URL: https://codereview.chromium.org/27092002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228318 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Revert "Use chunks in trace event buffers""wangxianzhu@chromium.org2013-10-103-474/+791
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 6d48f5ec0a410a2309ff3e24f4a91039f83a57c1. Fixed the misplaced weak_clear() (that I misunderstood it would only clear the pointers not the vector). As we only need to store the weak pointers now changed to use scoped_ptr<TraceBufferChunk*[]>. > > Revert "Use chunks in trace event buffers" > > This reverts commit cb13e0a5455c86507e493498bb232e98467333c1 because > of unit test failure (though try bots passed). > > > Use chunks in trace event buffers > > > > Separated from https://codereview.chromium.org/23799005/. > > > > Chunks are fixed sized arrays of TraceEvents in trace event buffers. > > Each thread borrows a chunk from the buffer, adds thread-local events > > into the chunk without locking, and returns the chunk when it is full. > > > > TraceLog also gets a chunk from the buffer for events that are not > > suitable to use thread-local buffer. > > > > With the chunks, TraceEvent never copies except when the trace buffer > > is cloned. > > > > Changed |flush_count_| to |generation| which indicates the version of > > the central TraceBuffer. If a thread failed to flush in the last flush, > > it may still hold a TraceBufferChunk from the original TraceBuffer. > > |generation| controls the thread not to return the chunk to the current > > TraceBuffer. > > > > This is preparation for the new design for X events which exposes > > TraceEventHandle through TRACE_EVENT_API. > > > > BUG=trace-viewer:142 > > TEST=Existing TraceEventTestFixture.* tests > > TEST=TraceEventTestFixture.TraceBufferRingBuffer* > > > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=227783 > > NOTRY=true > TBR=msw > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=227816 TBR=dsinclair Review URL: https://codereview.chromium.org/26757003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227903 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Use chunks in trace event buffers"wangxianzhu@chromium.org2013-10-093-798/+474
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit cb13e0a5455c86507e493498bb232e98467333c1 because of unit test failure (though try bots passed). > Use chunks in trace event buffers > > Separated from https://codereview.chromium.org/23799005/. > > Chunks are fixed sized arrays of TraceEvents in trace event buffers. > Each thread borrows a chunk from the buffer, adds thread-local events > into the chunk without locking, and returns the chunk when it is full. > > TraceLog also gets a chunk from the buffer for events that are not > suitable to use thread-local buffer. > > With the chunks, TraceEvent never copies except when the trace buffer > is cloned. > > Changed |flush_count_| to |generation| which indicates the version of > the central TraceBuffer. If a thread failed to flush in the last flush, > it may still hold a TraceBufferChunk from the original TraceBuffer. > |generation| controls the thread not to return the chunk to the current > TraceBuffer. > > This is preparation for the new design for X events which exposes > TraceEventHandle through TRACE_EVENT_API. > > BUG=trace-viewer:142 > TEST=Existing TraceEventTestFixture.* tests > TEST=TraceEventTestFixture.TraceBufferRingBuffer* > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=227783 NOTRY=true TBR=msw Review URL: https://codereview.chromium.org/26444006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227816 0039d316-1c4b-4281-b951-d872f2087c98
* Use chunks in trace event bufferswangxianzhu@chromium.org2013-10-093-474/+798
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Separated from https://codereview.chromium.org/23799005/. Chunks are fixed sized arrays of TraceEvents in trace event buffers. Each thread borrows a chunk from the buffer, adds thread-local events into the chunk without locking, and returns the chunk when it is full. TraceLog also gets a chunk from the buffer for events that are not suitable to use thread-local buffer. With the chunks, TraceEvent never copies except when the trace buffer is cloned. Changed |flush_count_| to |generation| which indicates the version of the central TraceBuffer. If a thread failed to flush in the last flush, it may still hold a TraceBufferChunk from the original TraceBuffer. |generation| controls the thread not to return the chunk to the current TraceBuffer. This is preparation for the new design for X events which exposes TraceEventHandle through TRACE_EVENT_API. BUG=trace-viewer:142 TEST=Existing TraceEventTestFixture.* tests TEST=TraceEventTestFixture.TraceBufferRingBuffer* Review URL: https://codereview.chromium.org/25656003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227783 0039d316-1c4b-4281-b951-d872f2087c98
* Non-US OS region generates invalid trace JSON.ed@opera.com2013-10-091-2/+24
| | | | | | | | | | | | | JSON output from the trace logging has floats formatted to the current user locale, which can make opening the trace fail. R= BUG=304818 Review URL: https://codereview.chromium.org/26249002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227730 0039d316-1c4b-4281-b951-d872f2087c98
* Make ConvertableToTraceFormat ref-countedwangxianzhu@chromium.org2013-10-097-149/+78
| | | | | | | | | | | | | | | | | | | | Previously though TraceEvent is copyable, the copy has side-effect that will clear the convertable pointers in the source TraceEvent. This hadn't been a problem before https://codereview.chromium.org/23531042/ which added TraceBuffer::Clone() so exposed the potential problem. Make ConvertableToTraceFormat ref-counted to allow copying of TraceEvents. This also simplifies the client code and trace_event.h because scoped_refptrs can be assigned just like other types of variables. TEST=existing tests BUG=none Review URL: https://codereview.chromium.org/26266003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227671 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 227354 "Revert "Implement TracingController::{Enable,Disa..."haraken@chromium.org2013-10-083-42/+171
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original CL was reverted because it increased the binary size of nacl-helper/data by 0.45%, but the increase was just 128 bytes. So I'll reland this CL, supressing the size failure. > Revert "Implement TracingController::{Enable,Disable,Capture}Monitoring" > Revert "Fix failures in chrome os after r227262" > Revert "Fix the content_browser breakage after r227269" > > Caused sizes regression on linux for nacl-helper-data. > > TBR=haraken > BUG=304789 > > > Implement TracingController::{Enable,Disable,Capture}Monitoring > > > > This CL implements TracingController::EnableMonitoring, > > TracingController::DisableMonitoring and > > TracingController::CaptureMonitoringSnapshot. > > > > BUG=241743 > > TEST=base_unittests::TraceEventTestFixture.TraceContinuousSampling, > > content_browsertests::TracingControllerTest.EnableCaptureAndDisableMonitoring > > > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=226701 > > > > R=dsinclair@chromium.org, joi@chromium.org, nduca@chromium.org, tsepez@chromium.org > > > > Review URL: https://codereview.chromium.org/23531042 > > Review URL: https://codereview.chromium.org/26294003 TBR=justinlin@chromium.org Review URL: https://codereview.chromium.org/26272005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227413 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Implement TracingController::{Enable,Disable,Capture}Monitoring"justinlin@chromium.org2013-10-073-171/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert "Fix failures in chrome os after r227262" Revert "Fix the content_browser breakage after r227269" Caused sizes regression on linux for nacl-helper-data. TBR=haraken BUG=304789 > Implement TracingController::{Enable,Disable,Capture}Monitoring > > This CL implements TracingController::EnableMonitoring, > TracingController::DisableMonitoring and > TracingController::CaptureMonitoringSnapshot. > > BUG=241743 > TEST=base_unittests::TraceEventTestFixture.TraceContinuousSampling, > content_browsertests::TracingControllerTest.EnableCaptureAndDisableMonitoring > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=226701 > > R=dsinclair@chromium.org, joi@chromium.org, nduca@chromium.org, tsepez@chromium.org > > Review URL: https://codereview.chromium.org/23531042 Review URL: https://codereview.chromium.org/26294003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227354 0039d316-1c4b-4281-b951-d872f2087c98
* Implement TracingController::{Enable,Disable,Capture}Monitoringharaken@chromium.org2013-10-073-42/+171
| | | | | | | | | | | | | | | | | | This CL implements TracingController::EnableMonitoring, TracingController::DisableMonitoring and TracingController::CaptureMonitoringSnapshot. BUG=241743 TEST=base_unittests::TraceEventTestFixture.TraceContinuousSampling, content_browsertests::TracingControllerTest.EnableCaptureAndDisableMonitoring Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=226701 R=dsinclair@chromium.org, joi@chromium.org, nduca@chromium.org, tsepez@chromium.org Review URL: https://codereview.chromium.org/23531042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227262 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 226920 "Roll Clang 188423:191856."thakis@chromium.org2013-10-061-0/+10
| | | | | | | | | | | | | | | | | | | | | Possibly broke crash symbolication on mac. > Roll Clang 188423:191856. > > Remove libprofile_rt from package.sh, it doesn't exist after LLVM r191835 > > BUG=290204,303886 > R=thakis@chromium.org > TBR=net owner > NOTRY=true > > Review URL: https://codereview.chromium.org/25875004 TBR=thakis@chromium.org Review URL: https://codereview.chromium.org/26145004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227219 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 226978 "Revert 226920 "Roll Clang 188423:191856.""jochen@chromium.org2013-10-041-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | > Revert 226920 "Roll Clang 188423:191856." > > I suspect this caused a 25% sizes regression on Mac: http://build.chromium.org/f/chromium/perf/mac-release/sizes/report.html?history=150&rev=-1&graph=Chromium.app > > > Roll Clang 188423:191856. > > > > Remove libprofile_rt from package.sh, it doesn't exist after LLVM r191835 > > > > BUG=290204,303886 > > R=thakis@chromium.org > > TBR=net owner > > NOTRY=true > > > > Review URL: https://codereview.chromium.org/25875004 > > TBR=thakis@chromium.org > > Review URL: https://codereview.chromium.org/25988002 TBR=jochen@chromium.org Review URL: https://codereview.chromium.org/25999003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226994 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 226920 "Roll Clang 188423:191856."jochen@chromium.org2013-10-041-0/+10
| | | | | | | | | | | | | | | | | | | | | I suspect this caused a 25% sizes regression on Mac: http://build.chromium.org/f/chromium/perf/mac-release/sizes/report.html?history=150&rev=-1&graph=Chromium.app > Roll Clang 188423:191856. > > Remove libprofile_rt from package.sh, it doesn't exist after LLVM r191835 > > BUG=290204,303886 > R=thakis@chromium.org > TBR=net owner > NOTRY=true > > Review URL: https://codereview.chromium.org/25875004 TBR=thakis@chromium.org Review URL: https://codereview.chromium.org/25988002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226978 0039d316-1c4b-4281-b951-d872f2087c98
* Roll Clang 188423:191856.thakis@chromium.org2013-10-041-10/+0
| | | | | | | | | | | | | Remove libprofile_rt from package.sh, it doesn't exist after LLVM r191835 BUG=290204,303886 R=thakis@chromium.org TBR=net owner NOTRY=true Review URL: https://codereview.chromium.org/25875004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226920 0039d316-1c4b-4281-b951-d872f2087c98
* Clean up unused constant globalshans@chromium.org2013-10-031-0/+2
| | | | | | | | | | | Found by clang's new -Wunused-const-variable. BUG=290204 TBR=mark, acolwell, agl, alexeypa, markus, brettw Review URL: https://codereview.chromium.org/25849004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226888 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 226701 "Implement TracingController::{Enable,Disable,Capt..."tapted@chromium.org2013-10-033-170/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added test base_unittests:TraceContinuousSampling fails on main waterfall http://build.chromium.org/p/chromium.linux/buildstatus?builder=Linux%20Clang%20%28dbg%29&number=51008 TraceEventTestFixture.TraceContinuousSampling: ../../base/debug/trace_event_unittest.cc:1814: Failure Value of: FindNamePhase("CCC", "P") Actual: false Expected: true > Implement TracingController::{Enable,Disable,Capture}Monitoring > > This CL implements TracingController::EnableMonitoring, > TracingController::DisableMonitoring and > TracingController::CaptureMonitoringSnapshot. > > BUG=241743 > TEST=base_unittests::TraceEventTestFixture.TraceContinuousSampling, > content_browsertests::TracingControllerTest.EnableCaptureAndDisableMonitoring > > Review URL: https://codereview.chromium.org/23531042 TBR=haraken@chromium.org Review URL: https://codereview.chromium.org/25849002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226713 0039d316-1c4b-4281-b951-d872f2087c98
* Implement TracingController::{Enable,Disable,Capture}Monitoringharaken@chromium.org2013-10-033-42/+170
| | | | | | | | | | | | | | This CL implements TracingController::EnableMonitoring, TracingController::DisableMonitoring and TracingController::CaptureMonitoringSnapshot. BUG=241743 TEST=base_unittests::TraceEventTestFixture.TraceContinuousSampling, content_browsertests::TracingControllerTest.EnableCaptureAndDisableMonitoring Review URL: https://codereview.chromium.org/23531042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226701 0039d316-1c4b-4281-b951-d872f2087c98
* Enforce crash key registration in SetCrashKeyValue.rsesek@chromium.org2013-10-031-3/+2
| | | | | | | | | BUG=77656 R=mark@chromium.org Review URL: https://codereview.chromium.org/25572002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226651 0039d316-1c4b-4281-b951-d872f2087c98
* Fix crash when ECHO_TO_CONSOLEwangxianzhu@chromium.org2013-10-011-8/+8
| | | | | | | | | | | | | | | | | TraceEvent's copy constructor has a side-effect that the ownership of the convertable values will be passed from the source TraceEvent to the target TraceEvent. Handle ECHO_TO_CONSOLE before the event is added to the buffer. The copy constructor will be obsoleted soon to avoid such issues. BUG=302676 TEST=Run cc_unittests with --trace_to_console Review URL: https://codereview.chromium.org/25453005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226319 0039d316-1c4b-4281-b951-d872f2087c98
* Fix --trace-shutdown with thread-local tracing.wangxianzhu@chromium.org2013-09-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | With thread-local tracing (r221766), TraceLog::Flush() is async and needs to be called from a thread having a message loop. It also requires that tracing has been stopped. BrowserShutdownProfileDumper is a special caller that TraceLog::Flush() was originally called from a thread without message loop. Now start another thread for flushing, and call TraceLog::SetDisabled() before TraceLog::Flush(). The calling thread needs to wait for the completion of the flush, otherwise the browser may shutdown before all trace events written. Temporarily allow the thread to wait in ThreadRestrictions. BUG=none TEST=manual run chrome with --trace-shutdown. Should not assert. Should generate correct trace file. Review URL: https://chromiumcodereview.appspot.com/24047007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223819 0039d316-1c4b-4281-b951-d872f2087c98
* Chrome tracing for system-wide performance stats.jwmak@chromium.org2013-09-184-0/+274
| | | | | | | | | | | | Trace memory, swap, ZRAM, and disk activity and place the data in JSON to be displayed by trace-viewer. BUG=236763 TEST=base_unittests TraceSystemStatsMonitorTest.* Review URL: https://chromiumcodereview.appspot.com/22836004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223806 0039d316-1c4b-4281-b951-d872f2087c98
* gpu: Record GL state to traceskyostil@chromium.org2013-09-121-1/+1
| | | | | | | | | | | | | | | | This patch adds a GL state tracer for recording information about the context state as trace event objects. This initial version only records a screenshot of the framebuffer contents at every SwapBuffers. Note that because the saving this information can be expensive, the new trace events are added under the "disabled-by-default-gpu.debug" category. BUG=284402 Review URL: https://chromiumcodereview.appspot.com/23926013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222812 0039d316-1c4b-4281-b951-d872f2087c98