Commit 1f73ca85 by Szeberényi Imre

MEMTRACE

parent e11a4f92
...@@ -3,7 +3,7 @@ Memoriaszivargas-detektor ...@@ -3,7 +3,7 @@ Memoriaszivargas-detektor
Keszitette: Peregi Tamas, BME IIT, 2011 Keszitette: Peregi Tamas, BME IIT, 2011
petamas@iit.bme.hu petamas@iit.bme.hu
Kanari: Szeberenyi Imre, 2013., Kanari: Szeberenyi Imre, 2013.,
VS 2012: Szebernyi Imre, 2015., VS 2012: Szeberényi Imre, 2015.,
mem_dump: 2016. mem_dump: 2016.
inclue-ok: 2017., 2018. inclue-ok: 2017., 2018.
*********************************/ *********************************/
...@@ -13,7 +13,7 @@ inclue-ok: 2017., 2018. ...@@ -13,7 +13,7 @@ inclue-ok: 2017., 2018.
#if defined(MEMTRACE) #if defined(MEMTRACE)
/*ha definilva van, akkor a hibakat ebbe a fajlba rja, egybkent stderr-re*/ /*ha definiálva van, akkor a hibakat ebbe a fajlba írja, egyébkent stderr-re*/
/*#define MEMTRACE_ERRFILE MEMTRACE.ERR*/ /*#define MEMTRACE_ERRFILE MEMTRACE.ERR*/
/*ha definialva van, akkor futas kozben lancolt listat epit. Javasolt a hasznalata*/ /*ha definialva van, akkor futas kozben lancolt listat epit. Javasolt a hasznalata*/
...@@ -71,25 +71,25 @@ inclue-ok: 2017., 2018. ...@@ -71,25 +71,25 @@ inclue-ok: 2017., 2018.
#define TRACEC(func) func #define TRACEC(func) func
#endif #endif
// THROW deklarci vltozatai // THROW deklaráció változatai
#if defined(_MSC_VER) #if defined(_MSC_VER)
// VS rosszul kezeli az __cplusplus makrot // VS rosszul kezeli az __cplusplus makrot
#if _MSC_VER < 1900 #if _MSC_VER < 1900
// * nem biztos, hogy j gy * // * nem biztos, hogy jó így *
#define THROW_BADALLOC #define THROW_BADALLOC
#define THROW_NOTHING #define THROW_NOTHING
#else #else
// C++11 vagy jabb // C++11 vagy újabb
#define THROW_BADALLOC noexcept(false) #define THROW_BADALLOC noexcept(false)
#define THROW_NOTHING noexcept #define THROW_NOTHING noexcept
#endif #endif
#else #else
#if __cplusplus < 201103L #if __cplusplus < 201103L
// C++2003 vagy rgebbi // C++2003 vagy régebbi
#define THROW_BADALLOC throw (std::bad_alloc) #define THROW_BADALLOC throw (std::bad_alloc)
#define THROW_NOTHING throw () #define THROW_NOTHING throw ()
#else #else
// C++11 vagy jabb // C++11 vagy újabb
#define THROW_BADALLOC noexcept(false) #define THROW_BADALLOC noexcept(false)
#define THROW_NOTHING noexcept #define THROW_NOTHING noexcept
#endif #endif
...@@ -144,9 +144,9 @@ END_NAMESPACE ...@@ -144,9 +144,9 @@ END_NAMESPACE
#include <stdlib.h> #include <stdlib.h>
#ifdef __cplusplus #ifdef __cplusplus
#include <iostream> #include <iostream>
/* ide gyjtjk a nemtrace-vel sszeakad headereket, hogy elbb legyenek */ /* ide gyûjtjük a nemtrace-vel összeakadó headereket, hogy elõbb legyenek */
#include <fstream> // VS 2013 headerjben van deleted definici #include <fstream> // VS 2013 headerjében van deleted definició
#include <sstream> #include <sstream>
#include <vector> #include <vector>
#include <algorithm> #include <algorithm>
...@@ -197,7 +197,7 @@ void * operator new[](size_t size) THROW_BADALLOC; ...@@ -197,7 +197,7 @@ void * operator new[](size_t size) THROW_BADALLOC;
void operator delete(void * p) THROW_NOTHING; void operator delete(void * p) THROW_NOTHING;
void operator delete[](void * p) THROW_NOTHING; void operator delete[](void * p) THROW_NOTHING;
/* Visual C++ 2012 miatt kell, mert hklis, hogy nincs megfelel delete, br senki sem hasznlja */ /* Visual C++ 2012 miatt kell, mert háklis, hogy nincs megfelelõ delete, bár senki sem használja */
void operator delete(void *p, int, const char *) THROW_NOTHING; void operator delete(void *p, int, const char *) THROW_NOTHING;
void operator delete[](void *p, int, const char *) THROW_NOTHING; void operator delete[](void *p, int, const char *) THROW_NOTHING;
...@@ -212,5 +212,8 @@ void operator delete[](void *p, int, const char *) THROW_NOTHING; ...@@ -212,5 +212,8 @@ void operator delete[](void *p, int, const char *) THROW_NOTHING;
#endif /*MEMTRACE_CPP*/ #endif /*MEMTRACE_CPP*/
#endif /*FROM_MEMTRACE_CPP*/ #endif /*FROM_MEMTRACE_CPP*/
#endif /*MEMCHECK*/ #else
#pragma message ( "MEMTRACE NOT DEFINED" )
#endif /*MEMTRACE*/
#endif /*MEMTRACE_H*/ #endif /*MEMTRACE_H*/
...@@ -104,14 +104,22 @@ int main() { ...@@ -104,14 +104,22 @@ int main() {
/// kipróbáljuk a unique-ot /// kipróbáljuk a unique-ot
char test[] = "ssszia C+++++ + !"; /// sok ismétlődő kar. char test[] = "ssszia C+++++ + !"; /// sok ismétlődő kar.
#ifndef CPORTA #ifndef CPORTA
#ifdef MEMTRACE
cout << "\ntest tomb tartalma a uniq hivasa elott\n"; cout << "\ntest tomb tartalma a uniq hivasa elott\n";
memtrace::mem_dump(&test, sizeof(test)); memtrace::mem_dump(&test, sizeof(test));
#else
cout << "\nNincs definialva a MEMTRACE"
#endif // MEMTRACE
#endif // CPORTA #endif // CPORTA
cout << test << endl; cout << test << endl;
char *p = sajat::unique(test, test+strlen(test)); char *p = sajat::unique(test, test+strlen(test));
#ifndef CPORTA #ifndef CPORTA
#ifdef MEMTRACE
cout << "\nuniq hivasa utan p: " << (void*)p << endl; cout << "\nuniq hivasa utan p: " << (void*)p << endl;
memtrace::mem_dump(&test, sizeof(test)); /// Segit megfigyelni a memóriatartalmat memtrace::mem_dump(&test, sizeof(test)); /// Segit megfigyelni a memóriatartalmat
#else
cout << "\nNincs definialva a MEMTRACE"
#endif // MEMTRACE
#endif // CPORTA #endif // CPORTA
*p = 0; /// p az új sorozat végére mutat *p = 0; /// p az új sorozat végére mutat
cout << test << endl;; /// KIÍRÁS: szia C+ + ! cout << test << endl;; /// KIÍRÁS: szia C+ + !
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment