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 {
517
517
// 'resolved' points to a struct of two relative addresses.
518
518
// The second entry is a relative address to the mangled protocol
519
519
// 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
+
520
529
auto addr =
521
530
resolved.getResolvedAddress ().getAddressData () + sizeof (int32_t );
522
531
int32_t offset;
523
532
Reader->readInteger (RemoteAddress (addr), &offset);
524
533
auto addrOfTypeRef = addr + offset;
525
534
resolved = Reader->getSymbol (RemoteAddress (addrOfTypeRef));
526
535
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
+
527
544
// Dig out the protocol from the protocol list.
528
545
auto protocolList = readMangledName (resolved.getResolvedAddress (),
529
546
MangledNameKind::Type, dem);
You can’t perform that action at this time.
0 commit comments