Changeset 215715 in webkit for trunk/Source/JavaScriptCore/tools
- Timestamp:
- Apr 24, 2017, 7:53:49 PM (8 years ago)
- Location:
- trunk/Source/JavaScriptCore/tools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/tools/CellProfile.h
r213883 r215715 27 27 28 28 #include "JSCell.h" 29 #include "StackTrace.h"30 29 #include "Structure.h" 31 30 #include <wtf/MonotonicTime.h> 31 #include <wtf/StackTrace.h> 32 32 33 33 namespace JSC { -
trunk/Source/JavaScriptCore/tools/CodeProfile.cpp
r213859 r215715 31 31 #include "LinkBuffer.h" 32 32 #include "ProfileTreeNode.h" 33 #include <wtf/StackTrace.h> 33 34 #include <wtf/text/WTFString.h> 34 35 #if OS(DARWIN) || OS(LINUX)36 #include <cxxabi.h>37 #include <dlfcn.h>38 #include <execinfo.h>39 #endif40 35 41 36 namespace JSC { … … 52 47 "[[EngineFrame]]" 53 48 }; 54 55 // Helper function, find the symbol name for a pc in JSC.56 static const char* symbolName(void* address)57 {58 #if OS(DARWIN) || OS(LINUX)59 Dl_info info;60 if (!dladdr(address, &info) || !info.dli_sname)61 return "<unknown>";62 63 const char* mangledName = info.dli_sname;64 const char* cxaDemangled = abi::__cxa_demangle(mangledName, 0, 0, 0);65 return cxaDemangled ? cxaDemangled : mangledName;66 #else67 UNUSED_PARAM(address);68 return "<unknown>";69 #endif70 }71 49 72 50 // Helper function, truncate traces to prune the output & make very verbose mode a little more readable. … … 168 146 --lastEngineFrame; 169 147 ASSERT(m_samples[lastEngineFrame].type == EngineFrame); 170 const char* name = symbolName(m_samples[lastEngineFrame].pc); 148 const char* name = "<unknown>"; 149 auto demangled = StackTrace::demangle(m_samples[lastEngineFrame].pc); 150 if (demangled) 151 name = demangled->demangledName() ? demangled->demangledName() : demangled->mangledName(); 171 152 callbacks = callbacks->sampleChild(name); 172 153 if (truncateTrace(name))
Note:
See TracChangeset
for help on using the changeset viewer.