我正在尝试从“.pdb”文件生成“.mdb”文件,以便为DLL设置调试会话。但是我在pdb2mdb.exe文件上收到“BadImageFormatException:Invalid PE file”。
与问题相关的Unity文档:https://docs.unity3d.com/Manual/UsingDLL.html
这是我正在运行的命令:
"D:\Program Files\Unity\Editor\Data\Mono\lib\mono\2.0\pdb2mdb.exe" "D:\Projects\UnityXGame\UnityXGame.Games\UnityXGame.Sandbox\Assets\UnityXGame.Unity.Common.pdb"
此参考文件正确地适用于Unity 5。我可以调用类及其实例。
我收到以下错误:
未处理的异常:System.BadImageFormatException:无效的PE文件 文件名: 'd:\项目\ UnityXGame \ UnityXGame.Games \ UnityXGame.Sandbox \资产\ UnityXGame.Unity.Common.pdb' ---> Mono.Cecil.Binary.ImageFormatException:Mono.Cecil.Binary.ImageReader.VisitDOSHeader(DOSHeader)中的Invali d PE文件签名 标题)在Mono.Cecil.Binary.Image.Accept(IBinaryVisitor visitor)
在Mono.Cecil.Binary.ImageReader.Read(String file)at Mono.Cecil.Binary.ImageReader.Read(String file)at Mono.Cecil.AssemblyFactory.GetAssembly(String file)at Pdb2Mdb.Driver.Main(String [] args)
有什么想法我可以解决这个错误吗?
答案 0 :(得分:2)
传递给pdb2mdb的参数应该是汇编文件(.exe或.dll)而不是.pdb文件。在Unity文档页面上没有很好地解释该工具的使用,但here are some tips on how to use it