Fix the problem with JS entries in tickprocessor.

The main problem was due to the following: after Erik had fixed the logger to report library addresses, tickprocessor started to add to the code map entries that covered almost entire memory. This happened because tickprocessor contains a heuristic to bias addresses of functions from dynamic libraries:

    if (funcInfo.start < libStart && funcInfo.start < libEnd - libStart) {
      funcInfo.start += libStart;
    }

And, as tickprocessor tried to process all symbols from the library, including data entries, which can be outside reported library addresses range, the second condition failed, and funcInfo.start remained unbiased.

Review URL: http://codereview.chromium.org/125192


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 398c5a9b
......@@ -433,7 +433,7 @@ CppEntriesProvider.prototype.parseVmSymbols = function(
function addPrevEntry(end) {
// Several functions can be mapped onto the same address. To avoid
// creating zero-sized entries, skip such duplicates.
if (prevEntry && prevEntry.start != end) {
if (prevEntry && prevEntry.start < end) {
processorFunc(prevEntry.name, prevEntry.start, end);
}
}
......@@ -478,7 +478,7 @@ function UnixCppEntriesProvider() {
inherits(UnixCppEntriesProvider, CppEntriesProvider);
UnixCppEntriesProvider.FUNC_RE = /^([0-9a-fA-F]{8}) . (.*)$/;
UnixCppEntriesProvider.FUNC_RE = /^([0-9a-fA-F]{8}) [tT] (.*)$/;
UnixCppEntriesProvider.prototype.loadSymbols = function(libName) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment