Sync with 5.1.0
[deliverable/titan.core.git] / common / dbgnew.hh
CommitLineData
970ed795
EL
1///////////////////////////////////////////////////////////////////////////////
2// Copyright (c) 2000-2014 Ericsson Telecom AB
3// All rights reserved. This program and the accompanying materials
4// are made available under the terms of the Eclipse Public License v1.0
5// which accompanies this distribution, and is available at
6// http://www.eclipse.org/legal/epl-v10.html
7///////////////////////////////////////////////////////////////////////////////
8#ifndef DBGNEW_HH
9#define DBGNEW_HH
10
11#ifndef _Common_memory_H
12#include "memory.h"
13#endif
14
15#ifdef MEMORY_DEBUG
16
17class debug_new_counter_t
18{
19 static int count;
20 static const char * progname;
21public:
22 debug_new_counter_t();
23 ~debug_new_counter_t();
24 void set_program_name(const char *pgn);
25};
26// implementation in new.cc
27
28// An instance for every translation unit. Because each instance is constructed
29// before main() and probably before any other global object,
30// it is destroyed after main() ends and all global objects are destroyed.
31// The last destructor runs check_mem_leak().
32static debug_new_counter_t debug_new_counter;
33
34// Custom placement new for memory tracking
35void* operator new(size_t size, const char* file, int line);
36void* operator new[](size_t size, const char* file, int line);
37
38// Redirect "normal" new to memory-tracking placement new.
39#define new new(__FILE__, __LINE__)
40
41#endif // MEMORY_DEBUG
42
43#endif
This page took 0.024827 seconds and 5 git commands to generate.