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