Repository navigation
Warn when unable to find iOS Device Support Symbols - #189993
Conversation
There was a problem hiding this comment.
Code Review
This pull request updates the iOS LLDB debugger integration to resolve and configure Xcode Device Support symbol paths, particularly for iOS 17+ devices, and adds warnings when symbols are missing or incomplete. The review feedback suggests adding a timeout to the LLDB platform status check to prevent potential hangs, correcting a typo in a comment, utilizing the injected logger instead of global state in devices.dart, and verifying that the device architecture string is not empty before constructing symbol paths.
| if (_warnedAboutMissingSymbols && log.contains(missingSymbolsPattern)) { | ||
| return true; | ||
| } | ||
| return _ignorePatterns.any((Pattern pattern) => log.contains(pattern)); |
There was a problem hiding this comment.
LLDB typically outputs the libobjc.A.dylib is being read... warning repeatedly (for every library it fails to find) and because the LogInterceptor executes its action on every match, and _warnedAboutMissingSymbols isn't set to true until the 1-minute timer fires, the raw LLDB logs will continue to pass through here and cause the warning block to be printed lot of times.
We can maybe drop duplicate logs at the source by setting the flag upon the first match:
bool _ignoreLog(String log) {
if (log.contains(missingSymbolsPattern)) {
if (_warnedAboutMissingSymbols) {
return true;
}
_warnedAboutMissingSymbols = true;
}
return _ignorePatterns.any((Pattern pattern) => log.contains(pattern));
}|
@okorohelijah I refactored this pretty heavily, can you re-review? |
cbracken
left a comment
There was a problem hiding this comment.
Just a few drive-bys, mostly cause I was curious about how this stuff works these days.

This PR explicitly sets the iOS Device Support symbols in LLDB if we're able to identify them. If LLDB takes too long or receives a
warning: libobjc.A.dylib is being read from process memory.log, we print out a message indicating that symbols may be missing and that you need to open Xcode to trigger it to copy them.Fixes #189284.
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.
If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance.
Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the
gemini-code-assistbot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.