我不得不调查何时设置了某个cookie,但是不幸的是,我无法仅仅在代码库中找到它。因此,像往常一样,当比赛变得艰难时,我会设置一个象征性的断点。这次,千方百计,我没办法。
特别是,我一直在尝试为NSHTTPCookieStorage方法setCookie:设置符号断点,而无论是从Breakpoint导航器还是从调试控制台都无法设置它。
例如:
(lldb) br set -F '-[NSHTTPCookieStorage setCookie:]'
Breakpoint 6: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
我也尝试设置模块(基础),但未做任何更改。 NSURLSession方法downloadTaskWithResumeData:completionHandler:也发生了同样的情况,然后我尝试了其他一些Foundation的类,并且该类一直有效,除了苹果文档中属于该组的所有其他类(如NSHTTPCookieStorage和NSURLSession)。
我认为这可能与某些安全问题有关,但我还记得我在某些Keychain和SecKey的符号上应用了符号断点。
其他人也有同样经历吗?我还没有找到提到类似内容的任何文档。
答案 0 :(得分:1)
在我的情况下,我确实得到了相同的解决点:
br set -F '-[NSHTTPCookieStorage setCookie:]'
命令(注释b '-[NSHTTPCookieStorage setCookie:]'
将起作用)。
在您看来,lldb
出于某种原因尚未加载CFNetwork
。
我的
image lookup -vn '-[NSHTTPCookieStorage setCookie:]'
收益
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:]"
如果您使用的是真实设备,请尝试
image add '/Users/myusername/Library/Developer/Xcode/iOS DeviceSupport/12.4.1 (16G102)/Symbols/System/Library/Frameworks/CFNetwork.framework/CFNetwork'
(显然是适当的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'
如果没有错误,请尝试在该位置设置符号断点。