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 -~----------~----~----~----~------~----~------~--~---
