跳转到主要内容

诊断DLL依赖加载问题的工具

项目描述

DLL诊断工具

命令行工具dlldiag提供了识别应用程序或库的DLL依赖关系并诊断依赖加载问题的功能。它主要用于在将现有应用程序迁移到Windows容器时使用,在这些容器中,传统的基于GUI的工具不可用。识别应用程序所需的最小依赖集,便于将所需的DLL文件从mcr.microsoft.com/windows基本镜像复制到mcr.microsoft.com/windows/servercore基本镜像,从而在保持最小可能的镜像大小的同时,最大化应用程序的兼容性。

内容

要求和安装

dll-diagnostics Python包需要以下条件

您可以通过运行以下命令来安装包

pip install dll-diagnostics

如果您不需要在宿主系统上使用该软件包,则可以从Docker Hub下载预构建的容器镜像,以在Windows容器中开始使用dlldiag命令。

使用方法

dlldiag命令行工具提供了以下子命令

  • dlldiag deps:此子命令列出模块(DLL/EXE)的直接依赖项并检查是否可以加载。还列出延迟加载的依赖项,但不包括间接依赖项(即依赖项的依赖项)。

  • dlldiag docker:此子命令生成一个适用于在Windows容器中使用dlldiag命令的Dockerfile,允许用户在Dockerfile的FROM语句中可选地指定要使用的基镜像。当您想扩展您选择的现有镜像而不是简单地扩展Docker Hub中提供的预构建镜像时,这非常有用。

  • dlldiag graph:此子命令通过注入使用Detours的DLL来运行可执行模块,以测量对LoadLibrary()的调用,从而重建调用层次结构。当您想查看可执行模块的直接依赖项正在加载哪些间接依赖项,或想识别在运行时程序化加载的依赖项时,这非常有用。

  • dlldiag trace:此子命令使用Windows调试器跟踪模块(DLL/EXE)的LoadLibrary()调用并提供详细的结果报告。此跟踪利用Windows内核的loader snaps功能以获得细粒度信息,如Junfeng Zhang的博客文章“调试LoadLibrary失败”中所述。此跟踪捕获有关间接依赖项和延迟加载的依赖项的信息。

法律

版权所有 © 2019-2021,Adam Rehn。在LICENSE文件中提供MIT许可的详细信息。

此软件包的二进制分发包括部分以对象形式存在的Detours。Detours版权所有(c)Microsoft公司,并且在MIT许可下发布

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源代码分发

此版本没有提供源代码分发文件。有关生成分发存档的教程。

构建分发

dll_diagnostics-0.0.18-py3-none-any.whl (687.1 kB 查看哈希值)

上传时间 Python 3

由以下支持