File tree Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Original file line number Diff line number Diff line change @@ -517,13 +517,30 @@ class MetadataReader {
517517 // 'resolved' points to a struct of two relative addresses.
518518 // The second entry is a relative address to the mangled protocol
519519 // without symbolic references.
520+
521+ // lldb might return an unresolved remote absolute pointer from its
522+ // resolvePointerAsSymbol implementation -- workaround this.
523+ if (!resolved.isResolved ()) {
524+ auto remoteAddr = RemoteAddress (remoteAddress);
525+ resolved =
526+ RemoteAbsolutePointer (" " , remoteAddr.getAddressData ());
527+ }
528+
520529 auto addr =
521530 resolved.getResolvedAddress ().getAddressData () + sizeof (int32_t );
522531 int32_t offset;
523532 Reader->readInteger (RemoteAddress (addr), &offset);
524533 auto addrOfTypeRef = addr + offset;
525534 resolved = Reader->getSymbol (RemoteAddress (addrOfTypeRef));
526535
536+ // lldb might return an unresolved remote absolute pointer from its
537+ // resolvePointerAsSymbol implementation -- workaround this.
538+ if (!resolved.isResolved ()) {
539+ auto remoteAddr = RemoteAddress (addrOfTypeRef);
540+ resolved =
541+ RemoteAbsolutePointer (" " , remoteAddr.getAddressData ());
542+ }
543+
527544 // Dig out the protocol from the protocol list.
528545 auto protocolList = readMangledName (resolved.getResolvedAddress (),
529546 MangledNameKind::Type, dem);
You can’t perform that action at this time.
0 commit comments