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

问题描述 投票:3回答:1

我不得不调查何时设置了某个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的符号上应用了符号断点。

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

ios objective-c swift debugging lldb
1个回答
0
投票

在我的情况下,我确实得到了相同的解决点:

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'

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

© www.soinside.com 2019 - 2024. All rights reserved.