美文网首页LLVM
xcode 调试hikari--解决断点无效的问题

xcode 调试hikari--解决断点无效的问题

作者: 鸣人的大哥 | 来源:发表于2019-01-08 17:45 被阅读0次

    一、hikari导出成Xcode项目

    很简单,cmake指定Xcode就成。

    cmake -G "Xcode" -DCMAKE_BUILD_TYPE=Debug -DLLDB_CODESIGN_IDENTITY='' -DLLVM_APPEND_VC_REV=on -DLLVM_CREATE_XCODE_TOOLCHAIN=on \
    -DCMAKE_INSTALL_PREFIX=~/Library/Developer/ ../Hikari
    

    二、编译clang

    Xcode打开刚才cmake出来的项目,只编译clang就成,时间略长。

    三、断点调试pass

    直接下断点在pass部分是无法断下来的,因为执行那些混淆的pass是clang创建的子进程去执行的。
    我们需要找到执行pass的clang的参数。

    • 打印所有参数:
    QY-MBP:bin xxxxx$ ./clang /Users/xxxxxx/Desktop/test_llvm/ctest.c -mllvm -enable-bcfobf -###
    
    • 找到实际执行的参数:

    "/Volumes/QY/git/hikari_x/Debug/bin/clang" "-cc1" "-triple" "x86_64-apple-macosx10.13.0" "-Wdeprecated-objc-isa-usage" "-Werror=deprecated-objc-isa-usage" "-emit-obj" "-mrelax-all" "-disable-free" "-main-file-name" "ctest.c" "-mrelocation-model" "pic" "-pic-level" "2" "-mthread-model" "posix" "-mdisable-fp-elim" "-masm-verbose" "-munwind-tables" "-target-cpu" "penryn" "-dwarf-column-info" "-debugger-tuning=lldb" "-target-linker-version" "409.12" "-resource-dir" "/Volumes/QY/git/hikari_x/Debug/lib/clang/7.0.0" "-fdebug-compilation-dir" "/Volumes/QY/git/hikari_x/Debug/bin" "-ferror-limit" "19" "-fmessage-length" "120" "-stack-protector" "1" "-fblocks" "-fencode-extended-block-signature" "-fregister-global-dtors-with-atexit" "-fobjc-runtime=macosx-10.13.0" "-fmax-type-align=16" "-fdiagnostics-show-option" "-fcolor-diagnostics" "-mllvm" "-enable-bcfobf" "-o" "/var/folders/gj/mjvsypgx1zl609294lz4f6kc0000gn/T/ctest-edb9ca.o" "-x" "c" "/Users/xxxx/Desktop/test_llvm/ctest.c"

    • 现在将这些参数加到xcode运行参数里边,然后运行,pass里边加的断点就可以断下来了。


      image.png

    相关文章

      网友评论

        本文标题:xcode 调试hikari--解决断点无效的问题

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