gpt4 book ai didi

debugging - 为没有调试目录的程序集生成 DotPeek PDB

转载 作者:行者123 更新时间:2023-12-03 14:22:07 26 4
gpt4 key购买 nike

我正在尝试使用 JetBrains dotPeek 1.4 符号服务器,但是我遇到了一些失败的第 3 方程序集,dotPeek 状态为:

Pdb has not been generated because assembly does not contain debug directory

使用 CFF Explorer 我发现这些程序集具有空的“调试目录”可移植可执行文件 (PE) header 值。

是否有一种(简单的)方法来编辑 PE 以添加调试目录 header 值?

最佳答案

de4dot 在 dotPeek 眼中创建了无效的 .net 可执行模块。然而,这是 dotPeek 的问题,而不是 de4dot 的问题。但是由于我们没有 dotPeek 的来源,我们应该修改 de4dot 来实现互操作性。
修改:de4dot.code/AssemblyModule.cs 模块添加

writerOptions.WritePdb = true;
module.CreatePdbState();

到 de4dot.code.AssemblyModule.Save 函数,你在 exe 模块中填充了有效的 pdb 函数。

为了节省您的时间,您可以在我的补丁中使用 de4dot 项目: https://github.com/earnol/de4dot/commit/24c6e696fb9251f7d048ac33c88c710013a649d6
它将调试目录添加到输出可执行文件。只需删除生成的 PDB 并再次运行 dotPeek。它将完美无缺地工作。
使用类似:de4dot.exe -f filein.exe -o fileout.exe -fpdb

关于debugging - 为没有调试目录的程序集生成 DotPeek PDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31299157/

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