在Xcode 8.0中修复了
Xcode 7.3.1,iPhone SE,iOS 9.3.5
我使用JavaScriptCore框架通过JSObjectMakeFunctionWithCallback
将C函数绑定到JavaScript函数。
如果我在这个C函数中放置断点,
当执行位置来自JavaScript JSEvaluateScript
时,Xcode调试器会挂起。
我不需要使用Objective-C API, 因为我想与iOS和Android共享代码。
从我的实验中,我得到了这些条件。
JSObjectCallAsFunction
调用时,它不会发生。JSEvaluateScript
调用时发生。通过在模拟器运行中查看调用堆栈,我的意见是 这个问题来自JavaScriptCore的JIT / LLINT嵌入式程序集。 我猜这些程序集缺少与调试机制相关的东西。 所以我担心JavaScriptCode用户端的程序员没有解决方案。
我在此存储库中打包了一个可重复的小例子。
https://github.com/omochi/jscore-debugger-hangup
test_main.c
。printf
的{{1}}和TestNativeFunc
的{{1}}。JSEvaluateScript
。TestMain
。如果删除两个断点,它会正确运行并打印两条printf
条消息。
JSEvaluateScript
答案 0 :(得分:0)
这是Xcode 7.3.1中的已知错误,应该在Xcode 8.0中修复。如果您发现没有机会升级到8.0,请提交http://bugreporter.apple.com的错误。