美文网首页
lldb调试工具

lldb调试工具

作者: AceKitty | 来源:发表于2018-04-01 20:29 被阅读11次

    lldb: 调试工具. 支持OSX, iOS, 以及iOS模拟器

    debugserver:

    1. 配置debugserver
    • 将未经处理的debugserver从iOS拷贝到OSX中
     scp root@192.168.2.3:/Developer/usr/bin/debugserver ~/Desktop/debugserver/debugserver
    
    • 减肥( "arm64" 换成你设备所对应的ARM)
    lipo -thin arm64 debugserver -output debugserver 
    
    1. 给debugserver添加task_for_pid权限

    方案一:

    下载"http://iosre.com/ent.xml" 到OSX 然后运行如下命令:

    ldid -Sent.xml debugserver
    

    方案二:

    下载"http://iosre.com/ent.plist" 到OSX ,然后运行如下命令:

    codesign -s - --entitlements ent.plist -f debugserver 
    

    3.将经过处理的debugserver考回iOS,并添加执行权限

    scp ~/Desktop/debugserver/debugserver root@192.168.2.3:/usr/bin/debugserver
    
    chmod +x /usr/bin/debugserver
    

    4.用debugserver启动或附加进程

     debugserver -x backboard *:1234   /Applications/MobileSMS.app/MobileSMS(开启1234端口,等待任意IP接入)
    
     debugserver  192.168.2.3:1234 -a  /Applications/MobileSMS.app/MobileSMS(开启1234端口,等待指定IP接入)
    

    lldb:

    1.连接debugserver:

    (lldb) process connect://192.168.2.3:1234
    

    2.lldb命令

    • image list: 用于列举当前进程中的所有模块(image)

    • image list -o -f: 获取每个模块的起始地址

    • breakpoint:

        br function  在函数的起始位置设置断点
      
        br s -a address  在制定地址处设置断点 
      
        br dis/en/del  禁用,启用,删除断点
      
    • nexti(ni)/stepi(si) 执行下一条机器指令,前者不进入函数体,后者会进入函数体

    • register write: 给指定的寄存器赋值,从而对程序进行改动,观察程序的执行过程中有什么变化

    相关文章

      网友评论

          本文标题:lldb调试工具

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