@@ -214,7 +214,7 @@ LLDBMemoryReader::resolvePointerAsSymbol(swift::remote::RemoteAddress address) {
214
214
// aware of local symbols, so avoid returning those.
215
215
using namespace swift ::Demangle;
216
216
if (isSwiftSymbol (mangledName) && !isOldFunctionTypeMangling (mangledName))
217
- return {{ mangledName, 0 } };
217
+ return swift::remote::RemoteAbsolutePointer{ mangledName, 0 , address };
218
218
}
219
219
220
220
return {};
@@ -228,15 +228,16 @@ LLDBMemoryReader::resolvePointer(swift::remote::RemoteAddress address,
228
228
// We may have gotten a pointer to a process address, try to map it back
229
229
// to a tagged address so further memory reads originating from it benefit
230
230
// from the file-cache optimization.
231
- swift::remote::RemoteAbsolutePointer process_pointer (" " , readValue);
231
+ swift::remote::RemoteAbsolutePointer process_pointer{
232
+ swift::remote::RemoteAddress{readValue}};
232
233
233
234
if (!readMetadataFromFileCacheEnabled ())
234
235
return process_pointer;
235
236
236
237
// Try to strip the pointer before checking if we have it mapped.
237
238
auto strippedPointer = signedPointerStripper (process_pointer);
238
- if (strippedPointer.isResolved ())
239
- readValue = strippedPointer. getOffset ();
239
+ if (auto resolved = strippedPointer.getResolvedAddress ())
240
+ readValue = resolved. getAddressData ();
240
241
241
242
auto &target = m_process.GetTarget ();
242
243
Address addr;
@@ -293,9 +294,12 @@ LLDBMemoryReader::resolvePointer(swift::remote::RemoteAddress address,
293
294
return process_pointer;
294
295
}
295
296
296
- swift::remote::RemoteAbsolutePointer tagged_pointer (" " , tagged_address);
297
- if (tagged_address !=
298
- (uint64_t )signedPointerStripper (tagged_pointer).getOffset ()) {
297
+ swift::remote::RemoteAbsolutePointer tagged_pointer{
298
+ swift::remote::RemoteAddress{tagged_address}};
299
+
300
+ if (tagged_address != (uint64_t )signedPointerStripper (tagged_pointer)
301
+ .getResolvedAddress ()
302
+ .getAddressData ()) {
299
303
lldbassert (false &&
300
304
" Tagged pointer runs into pointer authentication mask!" );
301
305
return process_pointer;
@@ -534,9 +538,11 @@ LLDBMemoryReader::addModuleToAddressMap(ModuleSP module,
534
538
auto module_end_address = module_start_address + size;
535
539
536
540
if (module_end_address !=
537
- (uint64_t )signedPointerStripper (
538
- swift::remote::RemoteAbsolutePointer (" " , module_end_address))
539
- .getOffset ()) {
541
+ signedPointerStripper (
542
+ swift::remote::RemoteAbsolutePointer{
543
+ swift::remote::RemoteAddress{module_end_address}})
544
+ .getResolvedAddress ()
545
+ .getAddressData ()) {
540
546
LLDB_LOG (GetLog (LLDBLog::Types),
541
547
" [MemoryReader] module to address map ran into pointer "
542
548
" authentication mask!" );
0 commit comments