美文网首页
【Xcode】Memory Graph Debugger

【Xcode】Memory Graph Debugger

作者: BeethOven | 来源:发表于2022-02-24 17:19 被阅读0次
    image.png
    • 内存泄漏示例
    截屏2022-02-24 下午4.05.23.png
    • 俩种打开方式
    image-20220224162723160.png
    • 观察BlockView和MemoryLeakControl数量为2,发生内存泄漏
    image-20220224164016992.png
    • 点击图表中的MemoryViewController,可以看到有Block持有控制器
    image-20220224164050123.png
    • 点击Block, 可以获取到内存地址,Backtrace可以通过Malloc Stack Logging打开


      image-20220224164116923.png
    image-20220224164221865.png
    • 打开后定位相关方法
    image-20220224164345290.png
    • 也可以dis -s 地址查看
      作用是用来反汇编某个地址所对应符号信息以及开始一部分的汇编实现,这里加16的意思是因为Block对象的内部偏移16个字节的位置就是Block对象所保存的执行代码的函数地址
    
    (lldb) dis -s *(void**)(0x7fc56a06fd50+16)
    TestOC`__35-[MemoryLeakController viewDidLoad]_block_invoke:
        0x100830b00 <+0>:  pushq  %rbp
        0x100830b01 <+1>:  movq   %rsp, %rbp
        0x100830b04 <+4>:  subq   $0x40, %rsp
        0x100830b08 <+8>:  movq   %rdi, -0x8(%rbp)
        0x100830b0c <+12>: movq   %rdi, %rax
        0x100830b0f <+15>: movq   $0x0, -0x10(%rbp)
        0x100830b17 <+23>: leaq   -0x10(%rbp), %rcx
        0x100830b1b <+27>: movq   %rdi, -0x20(%rbp)
    

    参考文章

    相关文章

      网友评论

          本文标题:【Xcode】Memory Graph Debugger

          本文链接:https://www.haomeiwen.com/subject/xzgzlrtx.html