ATL类对象的日志记录 我有一个很大的DLL库,它是用微软的主动模板库(ATL)在C++开发的。

ATL类对象的日志记录 我有一个很大的DLL库,它是用微软的主动模板库(ATL)在C++开发的。,c++,logging,atl,C++,Logging,Atl,我试图在运行时从这个库中收集测试数据,以便以后为它构建一些好的单元测试。由于有些类大得离谱,因此手动将日志添加到所有成员函数并在每个成员函数运行后记录所有数百个成员数据变量的状态将是非常繁琐的工作 当然,我不需要记录所有的事情。我可以在运行最频繁的成员函数之后记录状态。然而,这个库需要在将来移植到更现代的堆栈中,这样就有了可靠的单元测试 有没有一种方法可以将整个ATL对象从内存转储到文件,以便以后可以轻松分析?是否有任何工具或库可用于此类任务? 我甚至可以找到可以帮助我解决这个问题的ATL类吗?

我试图在运行时从这个库中收集测试数据,以便以后为它构建一些好的单元测试。由于有些类大得离谱,因此手动将日志添加到所有成员函数并在每个成员函数运行后记录所有数百个成员数据变量的状态将是非常繁琐的工作

当然,我不需要记录所有的事情。我可以在运行最频繁的成员函数之后记录状态。然而,这个库需要在将来移植到更现代的堆栈中,这样就有了可靠的单元测试

有没有一种方法可以将整个ATL对象从内存转储到文件,以便以后可以轻松分析?是否有任何工具或库可用于此类任务?
我甚至可以找到可以帮助我解决这个问题的ATL类吗?

ATL只有跟踪功能(大多数不是自动的,需要声明)。还有一些调试和错误报告功能:您可以使用这些功能(可以通过修改来获得一些东西)。就这样。否则,你可以做的是使用C++解析器来测试代码。如果您所说的ATL对象是指COM对象,那么它可能很有用,因为ATL COM对象遵循一种模式。另一个解决方案是修改ATL源代码本身,因为它的开源ATL本身无法解决上述挑战。所有标准技巧都适用:您可以生成运行时调试输出(带或不带
ATLTRACE
),您可以使用Windows调试助手API创建小型转储。ATL类和COM开发总体上不提供任何额外功能。ATL只有跟踪功能(大多数不是自动的,需要声明)。还有一些调试和错误报告功能:您可以使用这些功能(可以通过修改来获得一些东西)。就这样。否则,你可以做的是使用C++解析器来测试代码。如果您所说的ATL对象是指COM对象,那么它可能很有用,因为ATL COM对象遵循一种模式。另一个解决方案是修改ATL源代码本身,因为它的开源ATL本身无法解决上述挑战。所有标准技巧都适用:您可以生成运行时调试输出(带或不带
ATLTRACE
),您可以使用Windows调试助手API创建小型转储。ATL类和COM开发总体上不向您提供任何额外内容。