[英]performSegueWithIdentifier while in URLSession.shared.dataTask(with: url)
[英]URLSession dataTask symbolic breakpoint at specific URL
讓我們從找出斷點處的instance
指針值開始。 由於在Swift
.resume()
調用中發送了一個Objective-C
selector
,因此我們必須回.resume()
以下實際實現:
objc_msgSend(receiver, selector, arg1, arg2, ...)
無需贅述,我們依靠 MacOS/iOS ABI 指定哪些 CPU 寄存器用於傳遞參數。 我們對查找receiver instance
指針值的第一個參數特別感興趣。
私有類__NSCFURLSessionTask
恰好具有以下方法:
- (NSURL*)currentRequest_URL;
@JimIngham 指出了一個驚人的捷徑來實現這一點,通用參數同義詞是$arg1 $arg2 ...
in lldb
。 (請注意,選擇器的arg1 arg2
將分別是lldb
的$arg3 $arg4
)這將其簡化為:
po [$arg1 currentRequest_URL]
https://www.google.com
如果x86
32bit
Simulator
對應於低於iPhone 5S
設備,您將使用:
(lldb) x/x $esp+4
0xbff9e050: 0x7874dd70
(lldb) po [0x7874dd70 currentRequest_URL]
https://www.google.com
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.