ndPPPhz
ndPPPhz

Reputation: 325

Unable to set a symbolic breakpoint to some Classes

I had to investigate when a certain cookie was being set but unfortunately, I couldn't figure it out just seeking in the codebase. So as usual, when the game gets tough, I go and set a symbolic breakpoint. This time, against all odds, I wasn't able to.

In particular, I have been trying to set a symbolic breakpoint to the NSHTTPCookieStorage method setCookie: and neither from the Breakpoint navigator nor from the debug console I couldn't manage to set it.

For example:

(lldb) br set -F '-[NSHTTPCookieStorage setCookie:]'
Breakpoint 6: no locations (pending).
WARNING:  Unable to resolve breakpoint to any actual locations.

I have also tried to set the Module (Foundation) but nothing changed. The same happened also for the NSURLSession method downloadTaskWithResumeData:completionHandler: Then I tried with some other Foundation's classes and it always worked, except for all of those who are part of this group inside the Apple Documentation as NSHTTPCookieStorage and NSURLSession.

URL Loading System Classes

I thought it could be related to some security concerns but I also remember I applied a symbolic breakpoint to some Keychain and SecKey's symbols.

Did anyone else experience the same? I haven't found any doc where something similar was mentioned.

Upvotes: 6

Views: 1007

Answers (1)

Kamil.S
Kamil.S

Reputation: 5543

I do get a resolved bp in my case with the same:

br set -F '-[NSHTTPCookieStorage setCookie:]' 

command (side note b '-[NSHTTPCookieStorage setCookie:]' would work to).

It seems in your case lldb has not loaded CFNetwork for whatever reason.
Mine

image lookup -vn  '-[NSHTTPCookieStorage setCookie:]'

yields

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:]"

If you're on real device try

image add '/Users/myusername/Library/Developer/Xcode/iOS DeviceSupport/12.4.1 (16G102)/Symbols/System/Library/Frameworks/CFNetwork.framework/CFNetwork'

(obviously path substitute for appropriate iOS version^)

If you're on simulator try

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'

If you don't get an error then try setting your symbolic breakpoint at that point.

Upvotes: 2

Related Questions