usbengines/usbotgwatcher/inc/debug.h
author hgs
Fri, 23 Apr 2010 23:57:55 +0300
changeset 46 0ffee699d6c7
parent 0 1e05558e2206
child 21 ff9df6630274
child 26 0ae0f29418cd
permissions -rw-r--r--
201007
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
46
hgs
parents: 0
diff changeset
     2
* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
46
hgs
parents: 0
diff changeset
     4
* This material, including documentation and any related computer
hgs
parents: 0
diff changeset
     5
* programs, is protected by copyright controlled by Nokia. All
hgs
parents: 0
diff changeset
     6
* rights are reserved. Copying, including reproducing, storing
hgs
parents: 0
diff changeset
     7
* adapting or translating, any or all of this material requires the
hgs
parents: 0
diff changeset
     8
* prior written consent of Nokia. This material also contains
hgs
parents: 0
diff changeset
     9
* confidential information which may not be disclosed to others
hgs
parents: 0
diff changeset
    10
* without the prior written consent of Nokia.
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Initial Contributors:
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
* Nokia Corporation - initial contribution.
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
*
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
* Contributors:
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*
46
hgs
parents: 0
diff changeset
    17
* Description: Debug macros and declarations. 
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
*
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
*/
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
46
hgs
parents: 0
diff changeset
    21
#ifndef DEBUG_H
hgs
parents: 0
diff changeset
    22
#define DEBUG_H
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
46
hgs
parents: 0
diff changeset
    24
//////////////////////////////////////////////////////////////////////////////
hgs
parents: 0
diff changeset
    25
// Here are parameters need to be modified. 
hgs
parents: 0
diff changeset
    26
// Component name 
hgs
parents: 0
diff changeset
    27
#define MODULE_NAME "USBOTGWATCHER"
hgs
parents: 0
diff changeset
    28
//////////////////////////////////////////////////////////////////////////////
hgs
parents: 0
diff changeset
    29
hgs
parents: 0
diff changeset
    30
hgs
parents: 0
diff changeset
    31
// For handling unicode strings as L##MACRO is interpreted as LMACRO
hgs
parents: 0
diff changeset
    32
#define WIDEN2( x ) L##x
hgs
parents: 0
diff changeset
    33
#define WIDEN( x ) WIDEN2( x )
hgs
parents: 0
diff changeset
    34
hgs
parents: 0
diff changeset
    35
_LIT( KUsbPanicModule, ""WIDEN( MODULE_NAME ) );
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
#ifdef _DEBUG
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
46
hgs
parents: 0
diff changeset
    39
// Comment this line out if using real-time debugging
hgs
parents: 0
diff changeset
    40
//#define LOG_TO_FILE 
hgs
parents: 0
diff changeset
    41
// ===========================================================================
hgs
parents: 0
diff changeset
    42
#if defined ( LOG_TO_FILE )
hgs
parents: 0
diff changeset
    43
// ===========================================================================
hgs
parents: 0
diff changeset
    44
// Add corresponding libabry in mmp file
hgs
parents: 0
diff changeset
    45
// LIBRARY    flogger.lib    
hgs
parents: 0
diff changeset
    46
// The log file is located at  
hgs
parents: 0
diff changeset
    47
// c:\logs\usb\MODULE_NAME.txt
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
#include <flogger.h>
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
46
hgs
parents: 0
diff changeset
    51
#define DESC( x ) TPtrC( ( const TText* ) ( x ) )
hgs
parents: 0
diff changeset
    52
#define DESC8( x ) TPtrC8( ( const TUint8* ) ( x ) )
hgs
parents: 0
diff changeset
    53
_LIT( KUsbLogDir, "USB" );
hgs
parents: 0
diff changeset
    54
_LIT( KUsbLogFile, ""WIDEN(MODULE_NAME)L".txt" );
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
46
hgs
parents: 0
diff changeset
    56
// s: c string. 
hgs
parents: 0
diff changeset
    57
#define LOG(s) RFileLogger::WriteFormat( KUsbLogDir, \
hgs
parents: 0
diff changeset
    58
                KUsbLogFile, EFileLoggingModeAppend, \
hgs
parents: 0
diff changeset
    59
                DESC8( "["MODULE_NAME"] "##s ) )
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
46
hgs
parents: 0
diff changeset
    61
// s: c string contains "%x"
hgs
parents: 0
diff changeset
    62
// v: varaible corresponding to %x
hgs
parents: 0
diff changeset
    63
#define LOG1(s, v) RFileLogger::WriteFormat( KUsbLogDir, \
hgs
parents: 0
diff changeset
    64
                KUsbLogFile, EFileLoggingModeAppend, \
hgs
parents: 0
diff changeset
    65
                DESC8( "["MODULE_NAME"] "##s ), v)
hgs
parents: 0
diff changeset
    66
// s: c string contains "%x%y"
hgs
parents: 0
diff changeset
    67
// v1: varaible corresponding to %x
hgs
parents: 0
diff changeset
    68
// v2: varaible corresponding to %y
hgs
parents: 0
diff changeset
    69
#define LOG2(s, v1, v2) RFileLogger::WriteFormat( KUsbLogDir, \
hgs
parents: 0
diff changeset
    70
                KUsbLogFile, EFileLoggingModeAppend, \
hgs
parents: 0
diff changeset
    71
                DESC8( "["MODULE_NAME"] "##s ), v1, v2)
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
46
hgs
parents: 0
diff changeset
    73
// s: c string contains "%x%y%z"
hgs
parents: 0
diff changeset
    74
// v1: varaible corresponding to %x
hgs
parents: 0
diff changeset
    75
// v2: varaible corresponding to %y
hgs
parents: 0
diff changeset
    76
// v3: varaible corresponding to %z
hgs
parents: 0
diff changeset
    77
#define LOG3(s, v1, v2, v3) RFileLogger::WriteFormat( KUsbLogDir, \
hgs
parents: 0
diff changeset
    78
            KUsbLogFile, EFileLoggingModeAppend, \
hgs
parents: 0
diff changeset
    79
            DESC8( "["MODULE_NAME"] "##s ), v1, v2, v3 )
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
46
hgs
parents: 0
diff changeset
    81
class TFuncLogger
hgs
parents: 0
diff changeset
    82
    {
hgs
parents: 0
diff changeset
    83
public:
hgs
parents: 0
diff changeset
    84
    TFuncLogger(const TDesC8& aFuncName)
hgs
parents: 0
diff changeset
    85
        {
hgs
parents: 0
diff changeset
    86
        iFuncName.Set( aFuncName );
hgs
parents: 0
diff changeset
    87
        RFileLogger::WriteFormat( KUsbLogDir, KUsbLogFile, EFileLoggingModeAppend, 
hgs
parents: 0
diff changeset
    88
                DESC8( "["MODULE_NAME"] >>%s" ), iFuncName.Ptr() );
hgs
parents: 0
diff changeset
    89
        }
hgs
parents: 0
diff changeset
    90
    ~TFuncLogger()
hgs
parents: 0
diff changeset
    91
        {
hgs
parents: 0
diff changeset
    92
        RFileLogger::WriteFormat( KUsbLogDir, KUsbLogFile, 
hgs
parents: 0
diff changeset
    93
                EFileLoggingModeAppend, 
hgs
parents: 0
diff changeset
    94
                DESC8( "["MODULE_NAME"] <<%s" ), iFuncName.Ptr() );
hgs
parents: 0
diff changeset
    95
        }
hgs
parents: 0
diff changeset
    96
private:
hgs
parents: 0
diff changeset
    97
    TPtrC8 iFuncName;
hgs
parents: 0
diff changeset
    98
    };
hgs
parents: 0
diff changeset
    99
// ===========================================================================
hgs
parents: 0
diff changeset
   100
#else //Real-time logging
hgs
parents: 0
diff changeset
   101
// ===========================================================================
hgs
parents: 0
diff changeset
   102
#include <e32debug.h>
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
46
hgs
parents: 0
diff changeset
   104
// Paramters same as above.
hgs
parents: 0
diff changeset
   105
#define LOG( str ) { RDebug::Printf( "["MODULE_NAME"] %s", str  ); }
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
46
hgs
parents: 0
diff changeset
   107
#define LOG1( s, v ) { RDebug::Printf( "["MODULE_NAME"] "##s , v ); }
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
46
hgs
parents: 0
diff changeset
   109
#define LOG2( s, v1,v2 ) { RDebug::Printf( "["MODULE_NAME"] "##s , v1, v2 ); }
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
46
hgs
parents: 0
diff changeset
   111
#define LOG3( s, v1, v2, v3 ) { RDebug::Printf( "["MODULE_NAME"] "##s , \
hgs
parents: 0
diff changeset
   112
        v1, v2, v3); }
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
46
hgs
parents: 0
diff changeset
   114
class TFuncLogger
hgs
parents: 0
diff changeset
   115
    {
hgs
parents: 0
diff changeset
   116
public:
hgs
parents: 0
diff changeset
   117
    TFuncLogger(const TPtrC8& aFuncName) : iFuncName( aFuncName )
hgs
parents: 0
diff changeset
   118
        {
hgs
parents: 0
diff changeset
   119
        RDebug::Printf( "["MODULE_NAME"] >>%s", iFuncName.Ptr());
hgs
parents: 0
diff changeset
   120
        }
hgs
parents: 0
diff changeset
   121
    ~TFuncLogger()
hgs
parents: 0
diff changeset
   122
        {
hgs
parents: 0
diff changeset
   123
        RDebug::Printf( "["MODULE_NAME"] <<%s", iFuncName.Ptr());
hgs
parents: 0
diff changeset
   124
        }
hgs
parents: 0
diff changeset
   125
private:
hgs
parents: 0
diff changeset
   126
    TPtrC8 iFuncName;
hgs
parents: 0
diff changeset
   127
    };
hgs
parents: 0
diff changeset
   128
#endif // LOG_TO_FILE
hgs
parents: 0
diff changeset
   129
hgs
parents: 0
diff changeset
   130
#define LEAVE( exp )  {volatile TInt err = exp; \
hgs
parents: 0
diff changeset
   131
            LOG3( "LEAVE(%d) @file: %s, line: %d", err, __FILE__, __LINE__ );\
hgs
parents: 0
diff changeset
   132
            User::Leave( err );}
hgs
parents: 0
diff changeset
   133
hgs
parents: 0
diff changeset
   134
#define LEAVEIFERROR( exp ) {volatile TInt err = exp; if(err < 0) LEAVE(err);}
hgs
parents: 0
diff changeset
   135
hgs
parents: 0
diff changeset
   136
#define PANIC( exp ) {volatile TInt err = exp; \
hgs
parents: 0
diff changeset
   137
            LOG3( "PANIC(%d) @file: %s, line: %d", err, __FILE__, __LINE__ );\
hgs
parents: 0
diff changeset
   138
            User::Panic( KUsbPanicModule, err );}
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
46
hgs
parents: 0
diff changeset
   141
#define LOG_FUNC TFuncLogger __instrument(TPtrC8((TUint8*)__PRETTY_FUNCTION__));
hgs
parents: 0
diff changeset
   142
hgs
parents: 0
diff changeset
   143
#else // _DEBUG   
hgs
parents: 0
diff changeset
   144
// ===========================================================================
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
46
hgs
parents: 0
diff changeset
   146
#define LOG( s )
hgs
parents: 0
diff changeset
   147
#define LOG1( s, v ) 
hgs
parents: 0
diff changeset
   148
#define LOG2( s, v1, v2 )
hgs
parents: 0
diff changeset
   149
#define LOG3( s, v1, v2, v3 )
hgs
parents: 0
diff changeset
   150
#define LOG_FUNC_ENTRY 
hgs
parents: 0
diff changeset
   151
#define LOG_FUNC_EXIT 
hgs
parents: 0
diff changeset
   152
#define LEAVE( exp ) User::Leave( exp );
hgs
parents: 0
diff changeset
   153
#define LEAVEIFERROR( exp ) User::LeaveIfError( exp );
hgs
parents: 0
diff changeset
   154
#define PANIC( err ) User::Panic( KUsbPanicModule, err );
hgs
parents: 0
diff changeset
   155
#define LOG_FUNC
hgs
parents: 0
diff changeset
   156
// ===========================================================================
hgs
parents: 0
diff changeset
   157
#endif // _DEBUG
hgs
parents: 0
diff changeset
   158
// ===========================================================================
hgs
parents: 0
diff changeset
   159
#endif // DEBUG_H
0
1e05558e2206 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
46
hgs
parents: 0
diff changeset
   161
// End of File