added clang section in installation guide
[deliverable/titan.core.git] / common / dbgnew.hh
CommitLineData
d44e3c4f 1/******************************************************************************
2 * Copyright (c) 2000-2016 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 * Contributors:
9 * Balasko, Jeno
10 * Raduly, Csaba
11 *
12 ******************************************************************************/
970ed795
EL
13#ifndef DBGNEW_HH
14#define DBGNEW_HH
15
16#ifndef _Common_memory_H
17#include "memory.h"
18#endif
19
20#ifdef MEMORY_DEBUG
21
22class debug_new_counter_t
23{
24 static int count;
25 static const char * progname;
26public:
27 debug_new_counter_t();
28 ~debug_new_counter_t();
29 void set_program_name(const char *pgn);
30};
31// implementation in new.cc
32
33// An instance for every translation unit. Because each instance is constructed
34// before main() and probably before any other global object,
35// it is destroyed after main() ends and all global objects are destroyed.
36// The last destructor runs check_mem_leak().
37static debug_new_counter_t debug_new_counter;
38
39// Custom placement new for memory tracking
40void* operator new(size_t size, const char* file, int line);
41void* operator new[](size_t size, const char* file, int line);
42
43// Redirect "normal" new to memory-tracking placement new.
44#define new new(__FILE__, __LINE__)
45
46#endif // MEMORY_DEBUG
47
48#endif
This page took 0.037226 seconds and 5 git commands to generate.