在C++/CLI中跟踪所有DLL加载和初始化

zmb*_*mbq 11 debugging c++-cli visual-studio

我有一个复杂的C++/CLI应用程序,有许多模块(几十个),有些管理一些不受管理的模块.最近我们从Visual Studio 2013切换到Visual Studio 2015.它在某些计算机上运行,​​但在其他计算机上运行.

当程序不工作时,它甚至在主要的第一行之前崩溃.它报告了一个访问冲突异常_onexit.当忽略一些异常和断言时,我看到<Module>扔了一个TypeInitializationException.

问题是 - 我不知道哪一个.我可以看到在输出窗口中加载DLL的时间.最后加载的DLL是System.dll- 当然我的bug不存在.因此,我需要一种方法来跟踪托管DLL中的静态变量初始化,以便我可以找出哪个DLL存在问题,然后我可以跟踪有问题的初始化.

我怎样才能做到这一点?

Jac*_*Cat 3

好吧,我觉得有点愚蠢,但是在使用类型加载异常加载时出现问题时,我使用了fuslogvw

我认为它应该给您 dll 绑定的顺序,从而给您留下第一印象。