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

Side by Side Diff: tools/profile.js

Issue 551062: Fix issue 571: display descriptive names for code objects from snapshot. (Closed)
Patch Set: Created 10 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2009 the V8 project authors. All rights reserved. 1 // Copyright 2009 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 devtools.profiler.Profile.prototype.deleteCode = function(start) { 156 devtools.profiler.Profile.prototype.deleteCode = function(start) {
157 try { 157 try {
158 this.codeMap_.deleteCode(start); 158 this.codeMap_.deleteCode(start);
159 } catch (e) { 159 } catch (e) {
160 this.handleUnknownCode(devtools.profiler.Profile.Operation.DELETE, start); 160 this.handleUnknownCode(devtools.profiler.Profile.Operation.DELETE, start);
161 } 161 }
162 }; 162 };
163 163
164 164
165 /** 165 /**
166 * Retrieves a code entry by an address.
167 *
168 * @param {number} addr Entry address.
169 */
170 devtools.profiler.Profile.prototype.findEntry = function(addr) {
171 return this.codeMap_.findEntry(addr);
172 };
173
174
175 /**
166 * Records a tick event. Stack must contain a sequence of 176 * Records a tick event. Stack must contain a sequence of
167 * addresses starting with the program counter value. 177 * addresses starting with the program counter value.
168 * 178 *
169 * @param {Array<number>} stack Stack sample. 179 * @param {Array<number>} stack Stack sample.
170 */ 180 */
171 devtools.profiler.Profile.prototype.recordTick = function(stack) { 181 devtools.profiler.Profile.prototype.recordTick = function(stack) {
172 var processedStack = this.resolveAndFilterFuncs_(stack); 182 var processedStack = this.resolveAndFilterFuncs_(stack);
173 this.bottomUpTree_.addPath(processedStack); 183 this.bottomUpTree_.addPath(processedStack);
174 processedStack.reverse(); 184 processedStack.reverse();
175 this.topDownTree_.addPath(processedStack); 185 this.topDownTree_.addPath(processedStack);
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 name = '<anonymous>'; 348 name = '<anonymous>';
339 } else if (name.charAt(0) == ' ') { 349 } else if (name.charAt(0) == ' ') {
340 // An anonymous function with location: " aaa.js:10". 350 // An anonymous function with location: " aaa.js:10".
341 name = '<anonymous>' + name; 351 name = '<anonymous>' + name;
342 } 352 }
343 return this.type + ': ' + name; 353 return this.type + ': ' + name;
344 }; 354 };
345 355
346 356
347 /** 357 /**
358 * Returns raw node name (without type decoration).
359 */
360 devtools.profiler.Profile.DynamicCodeEntry.prototype.getRawName = function() {
361 return this.name;
362 };
363
364
365 /**
348 * Constructs a call graph. 366 * Constructs a call graph.
349 * 367 *
350 * @constructor 368 * @constructor
351 */ 369 */
352 devtools.profiler.CallTree = function() { 370 devtools.profiler.CallTree = function() {
353 this.root_ = new devtools.profiler.CallTree.Node( 371 this.root_ = new devtools.profiler.CallTree.Node(
354 devtools.profiler.CallTree.ROOT_NODE_LABEL); 372 devtools.profiler.CallTree.ROOT_NODE_LABEL);
355 }; 373 };
356 374
357 375
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 labels, opt_f) { 630 labels, opt_f) {
613 for (var pos = 0, curr = this; pos < labels.length && curr != null; pos++) { 631 for (var pos = 0, curr = this; pos < labels.length && curr != null; pos++) {
614 var child = curr.findChild(labels[pos]); 632 var child = curr.findChild(labels[pos]);
615 if (opt_f) { 633 if (opt_f) {
616 opt_f(child, pos); 634 opt_f(child, pos);
617 } 635 }
618 curr = child; 636 curr = child;
619 } 637 }
620 return curr; 638 return curr;
621 }; 639 };
OLDNEW
« src/serialize.cc ('K') | « src/snapshot-common.cc ('k') | tools/tickprocessor.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698