【问题标题】:How to attach LLDB to C# .NET process and debug dynamically loaded macOS bundle?如何将 LLDB 附加到 C# .NET 进程并调试动态加载的 macOS 包?
【发布时间】:2018-06-14 15:15:34
【问题描述】:

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

【问题讨论】:

    标签: c# c++ unity3d lldb


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2021-06-09
      • 1970-01-01
      • 2010-10-07
      • 2010-09-26
      相关资源
      最近更新 更多