Index: runtime/vm/native_symbol_linux.cc |
diff --git a/runtime/vm/native_symbol_linux.cc b/runtime/vm/native_symbol_linux.cc |
index 4a0e12fad2d21bd177234fe9be13ece7a65b161b..93fdcbe0967f91397c24c4573e4779b65e546f8e 100644 |
--- a/runtime/vm/native_symbol_linux.cc |
+++ b/runtime/vm/native_symbol_linux.cc |
@@ -21,7 +21,7 @@ void NativeSymbolResolver::ShutdownOnce() { |
} |
-char* NativeSymbolResolver::LookupSymbolName(uintptr_t pc) { |
+char* NativeSymbolResolver::LookupSymbolName(uintptr_t pc, uintptr_t* start) { |
Dl_info info; |
int r = dladdr(reinterpret_cast<void*>(pc), &info); |
if (r == 0) { |
@@ -30,6 +30,9 @@ char* NativeSymbolResolver::LookupSymbolName(uintptr_t pc) { |
if (info.dli_sname == NULL) { |
return NULL; |
} |
+ if (start != NULL) { |
+ *start = reinterpret_cast<uintptr_t>(info.dli_saddr); |
+ } |
int status; |
char* demangled = abi::__cxa_demangle(info.dli_sname, NULL, NULL, &status); |
if (status == 0) { |