Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(47)

Issue 337653002: Oilpan: GC_TRACING: Improve object path dump (Closed)

Created:
6 years, 6 months ago by tkent
Modified:
6 years, 6 months ago
CC:
blink-reviews, jamesr, arv+blink, abarth-chromium, dglazkov+blink, blink-reviews-bindings_chromium.org, gavinp+loader_chromium.org, Nate Chapin, kouhei+heap_chromium.org
Project:
blink
Visibility:
Public.

Description

Oilpan: GC_TRACING: Improve object path dump We frequently saw object path dump like: Path to 1d6ec5d8 of WebCore::Node <- 7abc4660 of Persistent Then, we needed to investigate what this Persistent is. It took much time. This CL introduces 'tracing name' property to Persistent if ENABLE(GC_TRACING). The property is automatically filled with backtrace of a Persistent constructor. We'll get dump like: Path to 1bd56220 of WebCore::Node <- 1bd55ff8 of WebCore::Node <- 1bd55dc8 of WebCore::Node <- 7d046600 of Persistent ... Backtrace: Persistent<HTMLSelectElement, ThreadLocalPersistents<(ThreadAffinity)1> >::Persistent(HTMLSelectElement*) v8::Handle<v8::Object> V8DOMWrapper::associateObjectWithWrapper<V8HTMLSelectElement, HTMLSelectElement>(HTMLSelectElement*, WrapperTypeInfo const*, v8::Handle<v8::Object>, v8::Isolate*, WrapperConfiguration::Lifetime) v8::Handle<v8::Object> V8DOMWrapper::associateObjectWithWrapper<V8HTMLSelectElement, HTMLSelectElement>(WTF::RawPtr<HTMLSelectElement>, WrapperTypeInfo const*, v8::Handle<v8::Object>, v8::Isolate*, WrapperConfiguration::Lifetime) V8HTMLSelectElement::createWrapper(WTF::RawPtr<HTMLSelectElement>, v8::Handle<v8::Object>, v8::Isolate*) Additional improvement of the object path dump: * Correct host info name for heap collections * Don't try to dump unknown objects. BUG= Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=176185

Patch Set 1 #

Patch Set 2 : Backtrace #

Total comments: 14

Patch Set 3 : Skip WebCore::Persistent frames automatically #

Unified diffs Side-by-side diffs Delta from patch set Stats (+114 lines, -20 lines) Patch
M Source/platform/heap/Handle.h View 1 2 7 chunks +30 lines, -6 lines 0 comments Download
M Source/platform/heap/Heap.h View 1 1 chunk +2 lines, -0 lines 0 comments Download
M Source/platform/heap/Heap.cpp View 1 2 2 chunks +39 lines, -2 lines 0 comments Download
M Source/wtf/Assertions.h View 1 2 1 chunk +17 lines, -0 lines 0 comments Download
M Source/wtf/Assertions.cpp View 1 1 chunk +26 lines, -12 lines 0 comments Download

Messages

Total messages: 17 (0 generated)
tkent
Please take a look.
6 years, 6 months ago (2014-06-13 07:49:40 UTC) #1
kouhei (in TOK)
On 2014/06/13 07:49:40, tkent wrote: > Please take a look. lgtm
6 years, 6 months ago (2014-06-13 08:01:23 UTC) #2
Mads Ager (chromium)
Another way of doing this is to print a stack trace on all persistent allocations. ...
6 years, 6 months ago (2014-06-13 08:16:33 UTC) #3
tkent
Yeah, I used to add WTFReportBacktrace() to all Persistent constructors locally. But this way is ...
6 years, 6 months ago (2014-06-13 08:19:40 UTC) #4
Mads Ager (chromium)
On 2014/06/13 08:19:40, tkent wrote: > Yeah, I used to add WTFReportBacktrace() to all Persistent ...
6 years, 6 months ago (2014-06-13 08:22:29 UTC) #5
tkent
On 2014/06/13 08:22:29, Mads Ager (chromium) wrote: > On 2014/06/13 08:19:40, tkent wrote: > > ...
6 years, 6 months ago (2014-06-13 08:28:55 UTC) #6
Mads Ager (chromium)
On 2014/06/13 08:28:55, tkent wrote: > On 2014/06/13 08:22:29, Mads Ager (chromium) wrote: > > ...
6 years, 6 months ago (2014-06-13 08:39:44 UTC) #7
haraken
On 2014/06/13 08:39:44, Mads Ager (chromium) wrote: > On 2014/06/13 08:28:55, tkent wrote: > > ...
6 years, 6 months ago (2014-06-13 09:00:22 UTC) #8
zerny-chromium
On 2014/06/13 09:00:22, haraken wrote: > On 2014/06/13 08:39:44, Mads Ager (chromium) wrote: > > ...
6 years, 6 months ago (2014-06-13 09:07:57 UTC) #9
tkent
On 2014/06/13 09:07:57, zerny-chromium wrote: > How about having storing either the stack dump (or ...
6 years, 6 months ago (2014-06-16 01:03:33 UTC) #10
haraken
https://codereview.chromium.org/337653002/diff/60001/Source/platform/heap/Handle.h File Source/platform/heap/Handle.h (right): https://codereview.chromium.org/337653002/diff/60001/Source/platform/heap/Handle.h#newcode290 Source/platform/heap/Handle.h:290: Persistent() : m_raw(0) { recordBacktrace(); } I'm not sure ...
6 years, 6 months ago (2014-06-16 01:15:41 UTC) #11
tkent
https://codereview.chromium.org/337653002/diff/60001/Source/platform/heap/Handle.h File Source/platform/heap/Handle.h (right): https://codereview.chromium.org/337653002/diff/60001/Source/platform/heap/Handle.h#newcode347 Source/platform/heap/Handle.h:347: visitor->setHostInfo(this, m_tracingName.isEmpty() ? "Persistent" : m_tracingName); On 2014/06/16 01:15:40, ...
6 years, 6 months ago (2014-06-16 02:34:47 UTC) #12
haraken
LGTM.
6 years, 6 months ago (2014-06-16 02:41:37 UTC) #13
Mads Ager (chromium)
LGTM!
6 years, 6 months ago (2014-06-16 05:41:11 UTC) #14
tkent
The CQ bit was checked by tkent@chromium.org
6 years, 6 months ago (2014-06-16 07:35:53 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/tkent@chromium.org/337653002/80001
6 years, 6 months ago (2014-06-16 07:36:06 UTC) #16
commit-bot: I haz the power
6 years, 6 months ago (2014-06-16 08:02:49 UTC) #17
Message was sent while issue was closed.
Change committed as 176185

Powered by Google App Engine
This is Rietveld 408576698