This class helps me with tracing function enter/leave output. It is passed
a static integer that it uses for indentation. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27506 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
fbf8d9c8dc
commit
0ce571055a
46
headers/private/shared/FunctionTracer.h
Normal file
46
headers/private/shared/FunctionTracer.h
Normal file
@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Copyright © 2008 Stephan Aßmus <superstippi@gmx.de>
|
||||
* All rights reserved. Distributed under the terms of the MIT/X11 license.
|
||||
*/
|
||||
#ifndef FUNCTION_TRACER_H
|
||||
#define FUNCTION_TRACER_H
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <String.h>
|
||||
|
||||
namespace BPrivate {
|
||||
|
||||
class FunctionTracer {
|
||||
public:
|
||||
FunctionTracer(const char* className, const char* functionName,
|
||||
int32& depth)
|
||||
: fFunctionName(),
|
||||
fPrepend(),
|
||||
fFunctionDepth(depth)
|
||||
{
|
||||
fFunctionDepth++;
|
||||
fPrepend.Append(' ', fFunctionDepth * 2);
|
||||
fFunctionName << className << "::" << functionName << "()";
|
||||
|
||||
printf("%s%s {\n", fPrepend.String(), fFunctionName.String());
|
||||
}
|
||||
|
||||
~FunctionTracer()
|
||||
{
|
||||
// printf("%s - leave\n", fFunctionName.String());
|
||||
printf("%s}\n", fPrepend.String());
|
||||
fFunctionDepth--;
|
||||
}
|
||||
|
||||
private:
|
||||
BString fFunctionName;
|
||||
BString fPrepend;
|
||||
int32& fFunctionDepth;
|
||||
};
|
||||
|
||||
} // namespace BPrivate
|
||||
|
||||
using BPrivate::FunctionTracer;
|
||||
|
||||
#endif // FUNCTION_TRACER_H
|
Loading…
Reference in New Issue
Block a user