ndP*_*Phz 6 debugging objective-c ios lldb swift
我必须调查某个 cookie 何时被设置,但不幸的是,我无法仅在代码库中查找。所以像往常一样,当比赛变得艰难时,我会去设置一个象征性的断点。这一次,尽管困难重重,我还是没能做到。
特别是,我一直在尝试为 NSHTTPCookieStorage 方法setCookie:设置符号断点,无论是从断点导航器还是从调试控制台,我都无法设置它。
例如:
(lldb) br set -F '-[NSHTTPCookieStorage setCookie:]'
Breakpoint 6: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
Run Code Online (Sandbox Code Playgroud)
我也尝试过设置模块(基础),但没有任何改变。同样的情况也发生在 NSURLSession 方法downloadTaskWithResumeData:completionHandler:然后我尝试使用其他一些 Foundation 的类,它总是有效,除了 Apple 文档中属于该组的所有人员(如 NSHTTPCookieStorage 和 NSURLSession)。
我认为这可能与一些安全问题有关,但我还记得我对某些 Keychain 和 SecKey 的符号应用了符号断点。
其他人也有同样的经历吗?我还没有找到任何提到类似内容的文档。
在我的案例中,我确实得到了相同的解决方案:
br set -F '-[NSHTTPCookieStorage setCookie:]'
Run Code Online (Sandbox Code Playgroud)
命令(旁注b '-[NSHTTPCookieStorage setCookie:]'将起作用)。
在您的情况下,无论出于何种原因,似乎lldb都没有加载。
矿CFNetwork
image lookup -vn '-[NSHTTPCookieStorage setCookie:]'
Run Code Online (Sandbox Code Playgroud)
产量
1 match found in /Users/myusername/Library/Developer/Xcode/iOS DeviceSupport/12.4.1 (16G102)/Symbols/System/Library/Frameworks/CFNetwork.framework/CFNetwork:
Address: CFNetwork[0x0000000181478fbc] (CFNetwork.__TEXT.__text + 51832)
Summary: CFNetwork`-[NSHTTPCookieStorage setCookie:]
Module: file = "/Users/myusername/Library/Developer/Xcode/iOS DeviceSupport/12.4.1 (16G102)/Symbols/System/Library/Frameworks/CFNetwork.framework/CFNetwork", arch = "arm64"
Symbol: id = {0x00000af7}, range = [0x00000001b6628fbc-0x00000001b6629020), name="-[NSHTTPCookieStorage setCookie:]"
Run Code Online (Sandbox Code Playgroud)
如果您使用的是真实设备,请尝试
image add '/Users/myusername/Library/Developer/Xcode/iOS DeviceSupport/12.4.1 (16G102)/Symbols/System/Library/Frameworks/CFNetwork.framework/CFNetwork'
Run Code Online (Sandbox Code Playgroud)
(显然是相应 iOS 版本的路径替换^)
如果你在模拟器上尝试
image add '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/CFNetwork.framework/CFNetwork'
Run Code Online (Sandbox Code Playgroud)
如果没有收到错误,请尝试在该点设置符号断点。
| 归档时间: |
|
| 查看次数: |
856 次 |
| 最近记录: |