Swift中的符号断点



是否可以在Swift中为基于Swift的代码设置符号断点?

假设我有一个像

这样的类
class AwesomeSauce {
    var ingredients: [String]
    init(useIngredients:[String]) {
        ingredients = useIngredients
    }
}

假设ingredients数组的排序是

var specialSauce = AwesomeSauce(["Sugar","Spice","Everything Nice", "Chemical 'X'"])
specialSauce.ingredients.sort({ $0.length() > $1.length() })

让我们也说(因为我没有注意),我排序这个数组在一堆不同的地方在我的项目。

我想知道ingredients何时排序。

是否有一种方法可以在Array.sort()AwesomeSauce.ingredients.sort()或类似的东西上设置符号断点?

我似乎不能让任何东西工作,我已经尝试了各种可能的符号排列。

Swift.Array.sort上设置一个符号断点应该可以达到这个目的。

下面是使用swiftc和lldb的命令行会话示例:但你也可以在Xcode:

中做同样的事情<>之前$ xrun -sdk macosx swift -g main.swift$ LLDB main(lldb)创建主目录当前可执行文件设置为"main"(x86_64)。(lldb) b main断点1:where = main 'main + 106在main.swift:13,地址= 0x0000000100001aea(lldb)运行进程8032已启动。/主要的(x86_64)断点1增加了7个位置断点1中添加了1个位置断点1增加了4个位置进程8032停止*线程#1:tid = 0x1c46ff, 0x0000000100001aea main ' main + 106在main.swift:13,队列= 'com.apple。主线程',停止原因=断点1.1帧#0:0x0000000100001ea main 'main + 106在main.swift:1310}11}12-> 13 var specialSauce = AwesomeSauce(useIngredients: ["Sugar","Spice","Everything Nice", "Chemical 'X "])1415 specialSauce.ingredients。({count($0)> count($1)})16b Swift.Array.sort断点2:where = libswiftCore.dylib 'Swift.Array。sort (inout Swift.Array)((A, A) -> Swift.Bool) -> (), address = 0x0000000100030160(lldb) c8032进程恢复进程8032停止*线程#1:tid = 0x1c46ff, 0x0000000100030160 libswiftCore.dylib 'Swift.Array。sort (inout Swift.Array)((A, A) -> Swift.Bool) -> (), queue = 'com.apple. array . ')主线程',停止原因=断点2.1帧#0:0x0000000100030160 libswiftCore.dylib 'Swift.Array。sort (inout Swift.Array)((A, A) -> Swift.Bool) -> ()libswiftCore.dylib 'Swift.Array。排序(inout Swift.Array) ((,) -> Swift.Bool) -> ():-> 0x100030160: push %rbp0x100030161: movq %rsp, %rbp0x100030164: pushq %r150x100030166: pushq %r14(lldb)英国电信*线程#1:tid = 0x1c46ff, 0x0000000100030160 libswiftCore.dylib 'Swift.Array。sort (inout Swift.Array)((A, A) -> Swift.Bool) -> (), queue = 'com.apple. array . ')主线程',停止原因=断点2.1* frame #0: 0x0000000100030160 libswiftCore.dylib 'Swift.Array。sort (inout Swift.Array)((A, A) -> Swift.Bool) -> ()框架#1:0x0000000100001c99 main 'main + 537 at main.swift:15框架#2:0x00007fff8cff65c9 libdyld。start + 1

相关内容

  • 没有找到相关文章

最新更新