gpt4 book ai didi

visual-studio - 创建 mdb 文件以在 Unity 中调试托管 DLL

转载 作者:行者123 更新时间:2023-12-04 00:01:15 29 4
gpt4 key购买 nike

我正在尝试在 Unity 中调试我的托管 DLL。它曾经在 Unity 2018.x 上运行良好

现在我有 Unity 2019.3 并且我无法再调试(我的 DLL 工作正常,我只是无法调试它们)。

我的 DLL 及其 pdb 文件位于 Assets 文件夹中。这曾经足以调试它们。

阅读本文档:https://docs.unity3d.com/Manual/UsingDLL.html ,我正在尝试创建 mdb 文件。

第一个问题,文档说我必须将 .pdb 文件作为参数传递,而谷歌上的大多数链接都说要传递 .dll

此链接还指出我应该更改 .bat 文件的工作目录才能使用 pdb2mdb.exe:https://answers.unity.com/questions/294195/pdb2mdb-usage-error-from-command-line.html

这是我的代码:

set PathToLib="Libraries\"
if exist Libraries\LibBDD.dll (
echo Before switching directory for my lib %CD%
cd %PathToLib%
echo new directory %CD%
@pause
"C:\Program Files\Unity\Editor\Data\Mono\lib\mono\2.0\pdb2mdb.exe" LibBDD.dll

@pause
cd ..\..\..\..\..\
echo LibBDD done, new directory %CD%
)

首先,我不确定我的 CD 命令是否有效,因为路径保持不变。但我没有任何异常(exception)。

有了这个代码,我得到:

Fatal error: Microsoft.Cci.Pdb.PdbDebugException: Unknown custom metadata item kind: 6 à Microsoft.Cci.Pdb.PdbFunction.ReadCustomMetadata(BitAccess bits) à Microsoft.Cci.Pdb.PdbFunction..ctor(String module, ManProcSym proc, BitAccess bits) à Microsoft.Cci.Pdb.PdbFunction.LoadManagedFunctions(String module, BitAccess bits, UInt32 limit, Boolean readStrings) à Microsoft.Cci.Pdb.PdbFile.LoadFuncsFromDbiModule(BitAccess bits, DbiModuleInfo info, IntHashTable names, ArrayList funcList, Boolean readStrings, MsfDirectory dir, Dictionary`2 nameIndex, PdbReader reader) à Microsoft.Cci.Pdb.PdbFile.LoadFunctions(Stream read, BitAccess bits, Boolean readAllStrings) à Pdb2Mdb.Driver.Convert(AssemblyDefinition assembly, Stream pdb, MonoSymbolWriter mdb)



没有CD我得到:

Mono pdb to mdb debug symbol store converter Usage: pdb2mdb assembly



我正在使用 Visual Studio 2019 社区。

我不确定我做错了什么以及为什么我不能在 Unity 中调试了。我尝试将 csproj 添加到 VS 中的解决方案中,但它不再起作用,符号未加载。

最佳答案

看起来 2019.3 中发生了一些变化,出于某种原因,Unity 不再自动生成 mdb 文件。

解决方案是将您的 pdb 设置为 可移植 而不是 full ,这是您可以按照 here 的说明执行此操作的默认设置。在此之后,您不再需要 mdb 文件。

上面链接中的分步说明:

  1. In Solution Explorer, select the project.

  2. Select the Properties icon (or press Alt+Enter).

  3. In the side pane, choose Build (or Compile in Visual Basic).

  4. In the Configuration list, choose Debug or Release.

  5. Select the Advanced button (or the Advanced Compile Options button in Visual Basic).

  6. In the Debugging information list (or the Generate debug info list in Visual Basic), choose Portable.

  7. Build your project.



编译器在与可执行文件或主输出文件相同的文件夹中创建符号文件。

你也可以阅读 herehere

关于visual-studio - 创建 mdb 文件以在 Unity 中调试托管 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61002874/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com