Index: native_client_sdk/src/libraries/xray/symtable.c |
diff --git a/native_client_sdk/src/libraries/xray/symtable.c b/native_client_sdk/src/libraries/xray/symtable.c |
index 52f5c2b9ee33f2a5be0d52bd127c7609f6719a09..9c69efefd8daa9338fe7c30e486f101d4d480749 100644 |
--- a/native_client_sdk/src/libraries/xray/symtable.c |
+++ b/native_client_sdk/src/libraries/xray/symtable.c |
@@ -145,6 +145,16 @@ struct XRaySymbol* XRaySymbolTableLookup(struct XRaySymbolTable* symtab, |
uint32_t addr) { |
void *x = XRayHashTableLookup(symtab->hash_table, addr); |
struct XRaySymbol* r = (struct XRaySymbol*)x; |
+ |
+#if defined(__pnacl__) |
+ if (r == NULL){ |
+ addr |= 0x10000000; |
nfullagar1
2013/07/18 00:47:22
(you may have missed this one from before)
above:
grosse
2013/07/18 17:37:05
Done.
|
+ const char* name = (const char*)addr; |
+ struct XRaySymbol* symbol = XRaySymbolCreate(symtab->symbol_pool, name); |
+ r = XRaySymbolTableAdd(symtab, symbol, addr); |
+ } |
+#endif |
+ |
#if defined(__GLIBC__) |
if (r == NULL) { |
Dl_info info; |