如何将LLDB附加到C#.NET进程并调试动态加载的macOS bundle?

时间:2018-06-14 15:15:35

标签: c# c++ unity3d lldb

我开始为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 ++实现。

1 个答案:

答案 0 :(得分:2)

看来我可以将LLDB附加到Unity的主要进程中,只要它不会干扰另一个调试器。在我的情况下,Unity崩溃了,因为我已经在使用Visual Studio的调试器了。

另请注意,当您忘记停止Visual Studio的调试器,使用LLDB,并且Unity崩溃时,重新启动Unity时场景并不总是正确加载。我通过文件管理器启动Unity,使用场景文件(在资产/场景中)。

我还不知道任何更清洁/更方便的方法。最好的方法是能够直接从Visual Studio的调试器中读取调试信息。

相关问题