gpt4 book ai didi

windows - 剥离 Windows DLL 调试信息?

转载 作者:可可西里 更新时间:2023-11-01 13:17:37 25 4
gpt4 key购买 nike

我通常不从事 Windows 开发工作,并且完全不熟悉工具链和构建系统。我的嵌入式产品在其文件系统中包含一些来自第三方的 Windows DLL(由安装文件系统的 Windows 机器使用)。

我有一个问题:这些 DLL 的最新版本与以前的版本相比大小增加了三倍,并且它们不再适合文件系统。 DLL 的功能并没有太多变化,所以我怀疑开发人员只是忘记在这个 drop 中删除调试符号。我会问他们,但由于时区和语言的差异,通常需要几天时间才能得到答复。

有人可以通过简单的步骤为不熟悉 VisualC 的人解释如何确定 DLL 是否仍包含调试信息以及如何将其删除吗?

最佳答案

通常,调试信息本身是作为一个单独的 *.pdb 文件(程序数据库)构建的,而不是像在 unix 中那样附加到二进制文件中。如果开发人员确实构建了库的调试版本,则更严重的问题可能是依赖性问题。如果二进制文件的发布版本链接到 MSVCRT.DLL,则调试版本将链接到 MSVCRTD.DLL(其他运行时库的名称类似,带有 D 后缀)。要查找特定二进制文件的依赖项,请尝试:

dumpbin /imports whatever.dll

这将显示库 whatever.dll 的所有运行时依赖项(请注意,列出了这些库的库名称和符号)。如果您没有看到您期望的依赖项列表,则可能存在只能通过让原始开发人员以正确的构建模式重建库来解决的问题。

关于windows - 剥离 Windows DLL 调试信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/188639/

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