我已经开始为Unity和Unreal编写一个c++中间件。现在,在macOS上,我想将LLDB附加到Unity沙盒项目的进程,以便调试一些问题。我怎么能做这样的事情?
我的中间件是作为 macOS 捆绑包构建的,并通过 C# Unity 脚本动态加载。
public class MyMiddleware
{
[DllImport("MyMiddleware")]
public static extern int SomeFailingFunction();
}
public class SomeBehaviour: MonoBehaviour
{
private void Start() {
MyMiddleware.SomeFailingFunction();
}
}
我在生成捆绑包时嵌入了调试信息。我想调试SomeFailingFunction
的C++实现。
看来我可以将LLDB附加到Unity的主进程,只要它不干扰另一个调试器。就我而言,Unity崩溃了,因为我已经在使用Visual Studio的调试器。
另请注意,当您忘记停止 Visual Studio 的调试器、使用 LLDB 并且 Unity 崩溃时,您的场景在重新启动 Unity 时并不总是正确加载。我通过文件管理器使用场景文件(在资产/场景中(启动 Unity 来解决这个问题。
我还不知道有什么更清洁/更方便的方法。最好是能够直接从Visual Studio的调试器中读取调试信息。