Reviewers: Erik Corry,

Description:
Fix 'nm' results parsing in tickprocessor.

Without an explicit check if a function belongs to shared library
address space, "finishing" a library symbols processing with
'addPrevEntry(libEnd);' can cause emission of code entries which cover
almost the entire address space, shadowing other code.

Please review this at http://codereview.chromium.org/131033

Affected files:
   M tools/tickprocessor.js


Index: tools/tickprocessor.js
diff --git a/tools/tickprocessor.js b/tools/tickprocessor.js
index  
72d367f1990aab42b80b46435b3e446f8bddd5fd..63c69ac9a5bbfd4f52eb148944b0f992c36edb12
  
100644
--- a/tools/tickprocessor.js
+++ b/tools/tickprocessor.js
@@ -379,7 +379,9 @@ 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) {
+    // Also double-check that function belongs to the library address  
space.
+    if (prevEntry && prevEntry.start < end &&
+        prevEntry.start >= libStart && end <= libEnd) {
        processorFunc(prevEntry.name, prevEntry.start, end);
      }
    }



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

Reply via email to