65.9K
CodeProject 正在变化。 阅读更多。
Home

Hardwired 的 Debug 类

starIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

1.00/5 (7投票s)

2005年2月21日

1分钟阅读

viewsIcon

35394

downloadIcon

186

适用于单线程和多线程应用程序的调试工具类。

引言

我创建这个类是因为我需要在多线程应用程序中跟踪一些对象。由于对象在实际创建之前被使用,或者在销毁后被引用,遇到了很多问题。当然,在小型应用程序中你可能不会遇到这类问题,但如果事情变得非常复杂……那么你可能应该从一开始就考虑使用这个类。

Using the Code

使用这段代码很简单,你无需稍后考虑它。只需设置并忘记它。在/RELEASE 模式下,你不会遇到任何问题,因为CDebugTrace对象将为空。

首先,将debugtrace.hdebugtrace.cpp添加到你的项目中。之后,将一个CDebugTrace对象添加到对你的项目重要的类中(我建议你对所有类使用它)。以下是这个类的示例用法

//
// MyClass.h
//
#include "debugtrace.h"

class MyClass
{
    CDebugTrace    Trace;

public:
    MyClass();
    ~MyClass();

    void    SomeMethod(void);

    ...
};
//
// MyClass.cpp
//
#include "myclass.h"

MyClass::MyClass()
:    Trace( "MyClass" )
{
    ...
}

MyClass::~MyClass()
{
    ...
}

void MyClass::SomeMethod()
{
    Trace.Print("entered SomeMethod" );

    ...
}

如果你像这样使用它,你将知道该对象是什么时候创建或销毁的,以及它的生命周期。

你也可以像这样使用CDebugTrace来跟踪函数

void    SomeFunction( void )
{
    CDebugTrace    Trace( "SomeFunction" );

    ...
}

这样,你就可以知道该函数何时执行以及运行时间。

关注点

这个类对我的帮助很大,还可以添加很多其他功能。例如,CPU和内存统计信息可能也有帮助。

历史

  • 2005年2月21日:版本 1.0

好吧,我必须从某个地方开始。这是我的第一篇文章。

许可证

本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。

作者可能使用的许可证列表可以在此处找到。

© . All rights reserved.