diff options
author | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:08:06 +0200 |
---|---|---|
committer | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:08:06 +0200 |
commit | fbe76102e941b9f1edaf236788e42678f05fdf9a (patch) | |
tree | f5f538316019fa89be8dc478103490c3a826f3ac /shared/debugNew.h | |
parent | 3.8 (diff) | |
download | FreeFileSync-fbe76102e941b9f1edaf236788e42678f05fdf9a.tar.gz FreeFileSync-fbe76102e941b9f1edaf236788e42678f05fdf9a.tar.bz2 FreeFileSync-fbe76102e941b9f1edaf236788e42678f05fdf9a.zip |
3.9
Diffstat (limited to 'shared/debugNew.h')
-rw-r--r-- | shared/debugNew.h | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/shared/debugNew.h b/shared/debugNew.h deleted file mode 100644 index 702cf774..00000000 --- a/shared/debugNew.h +++ /dev/null @@ -1,95 +0,0 @@ -// ************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: http://www.gnu.org/licenses/gpl.html * -// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) * -// ************************************************************************** -// -#ifndef DEBUGNEW_H_INCLUDED -#define DEBUGNEW_H_INCLUDED - -#include <string> -#include <sstream> -#include <cstdlib> //malloc(), free() - - -/*all this header does is to globally overwrite "operator new" to give some more detailed error messages and write memory dumps -Usage: - - Include everywhere before any other file: $(ProjectDir)\shared\debugNew.h - For Minidumps: - - Compile "debugNew.cpp" - - Include library "Dbghelp.lib" - - Compile in Debug build (need Symbols and less restrictive Optimization) -*/ - -class BadAllocDetailed : public std::bad_alloc -{ -public: - explicit BadAllocDetailed(size_t allocSize) - { - errorMsg = "Memory allocation failed: "; - errorMsg += numberToString(allocSize); - } - - ~BadAllocDetailed() throw() {} - - virtual const char* what() const throw() - { - return errorMsg.c_str(); - } - -private: - template <class T> - static std::string numberToString(const T& number) //convert number to string the C++ way - { - std::stringstream ss; - ss << number; - return ss.str(); - } - - std::string errorMsg; -}; - -#ifdef _MSC_VER -namespace MemoryDump -{ -void writeMinidump(); -} -#endif - -inline -void* operator new(size_t allocSize) -{ - void* newMem = ::malloc(allocSize); - if (!newMem) - { -#ifdef _MSC_VER - MemoryDump::writeMinidump(); -#endif - throw BadAllocDetailed(allocSize); - } - return newMem; -} - - -inline -void* operator new[](size_t allocSize) -{ - return operator new(allocSize); -} - - -inline -void operator delete(void* memory) -{ - ::free(memory); -} - - -inline -void operator delete[](void* memory) -{ - operator delete(memory); -} - -#endif // DEBUGNEW_H_INCLUDED - |