Reviewers: William Hesse, Description: Fix issue 434: make OS::LogSharedLibraryAddresses work on x64 Mac.
Also, enable tick processor to process 64-bit profiler logs on Mac. BUG=http://code.google.com/p/v8/issues/detail?id=434 Please review this at http://codereview.chromium.org/180063 Affected files: M src/platform-macos.cc M tools/tickprocessor.js Index: src/platform-macos.cc diff --git a/src/platform-macos.cc b/src/platform-macos.cc index c0810649fe52cd02719db284b204f9e7d27678b6..e0bcb34691dbe60d9eb42e792f8f3d68a7c3a74d 100644 --- a/src/platform-macos.cc +++ b/src/platform-macos.cc @@ -211,8 +211,14 @@ void OS::LogSharedLibraryAddresses() { for (unsigned int i = 0; i < images_count; ++i) { const mach_header* header = _dyld_get_image_header(i); if (header == NULL) continue; +#if V8_HOST_ARCH_X64 + uint64_t size; + char* code_ptr = getsectdatafromheader_64( + (mach_header_64*)header, SEG_TEXT, SECT_TEXT, &size); +#else unsigned int size; char* code_ptr = getsectdatafromheader(header, SEG_TEXT, SECT_TEXT, &size); +#endif if (code_ptr == NULL) continue; const uintptr_t slide = _dyld_get_image_vmaddr_slide(i); const uintptr_t start = reinterpret_cast<uintptr_t>(code_ptr) + slide; Index: tools/tickprocessor.js diff --git a/tools/tickprocessor.js b/tools/tickprocessor.js index 72b3059dcaabf3e1645d2395cfc41cec118eda7d..84f0eea580d10fcef2ad01d15da638f782cc1bdc 100644 --- a/tools/tickprocessor.js +++ b/tools/tickprocessor.js @@ -476,7 +476,7 @@ UnixCppEntriesProvider.prototype.parseNextLine = function() { function MacCppEntriesProvider(nmExec) { UnixCppEntriesProvider.call(this, nmExec); // Note an empty group. It is required, as UnixCppEntriesProvider expects 3 groups. - this.FUNC_RE = /^([0-9a-fA-F]{8}) ()[iItT] (.*)$/; + this.FUNC_RE = /^([0-9a-fA-F]{8,16}) ()[iItT] (.*)$/; }; inherits(MacCppEntriesProvider, UnixCppEntriesProvider); --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
