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

时间:2018-05-24 21:24:59

标签: visual-studio debugging c++-cli

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

当程序无法正常工作时,它甚至会在主要的第一行之前崩溃。它会在_onexit中报告访问冲突异常。当忽略一些异常和断言时,我发现<Module>扔了一个TypeInitializationException

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

我该怎么做?

1 个答案:

答案 0 :(得分:3)

嗯,我觉得有点愚蠢,但在加载类型加载异常时遇到问题我使用了fuslogvw

我认为它应该给你dll绑定的顺序,因此给你第一印象。