无法为某些类设置符号断点

时间:2020-06-05 11:25:35

标签: ios objective-c swift debugging lldb

我不得不调查何时设置了某个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)。

URL Loading System Classes

我认为这可能与某些安全问题有关,但我还记得我在某些Keychain和SecKey的符号上应用了符号断点。

其他人也有同样经历吗?我还没有找到提到类似内容的任何文档。

1 个答案:

答案 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'

如果没有错误,请尝试在该位置设置符号断点。

相关问题