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

标签 c# c++ unity-game-engine lldb

我已经开始为 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/

相关文章:

c# - 为资源管理器创建嵌入资源

C# SqlDataAdapter.Fill 在传递数据表参数时给出有关数据转换的错误

c++ - 错误的分配器实现

java - 从 Android 插件调用 Unity 中的场景

ios - UnityAds生成iOS项目报错

c# - 将 Ajax 工具包脚本移动到页面底部

c# - 格式化多行文本框中显示的数据

c++ - 我的 C++ 代码有什么问题?

c++ - 如何创建加密的挂载文件夹

c# - Android 找不到文件路径 Unity 5