Author: [email protected]
Date: Tue Jun 16 11:57:26 2009
New Revision: 2194

Modified:
    branches/bleeding_edge/tools/tickprocessor.js

Log:
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


Modified: branches/bleeding_edge/tools/tickprocessor.js
==============================================================================
--- branches/bleeding_edge/tools/tickprocessor.js       (original)
+++ branches/bleeding_edge/tools/tickprocessor.js       Tue Jun 16 11:57:26 2009
@@ -433,7 +433,7 @@
    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 @@
  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) {

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to