Commit 1f73ca85 by Szeberényi Imre

MEMTRACE

parent e11a4f92
......@@ -3,7 +3,7 @@ Memoriaszivargas-detektor
Keszitette: Peregi Tamas, BME IIT, 2011
petamas@iit.bme.hu
Kanari: Szeberenyi Imre, 2013.,
VS 2012: Szebernyi Imre, 2015.,
VS 2012: Szeberényi Imre, 2015.,
mem_dump: 2016.
inclue-ok: 2017., 2018.
*********************************/
......@@ -13,7 +13,7 @@ inclue-ok: 2017., 2018.
#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*/
/*ha definialva van, akkor futas kozben lancolt listat epit. Javasolt a hasznalata*/
......@@ -71,25 +71,25 @@ inclue-ok: 2017., 2018.
#define TRACEC(func) func
#endif
// THROW deklarci vltozatai
// THROW deklaráció változatai
#if defined(_MSC_VER)
// VS rosszul kezeli az __cplusplus makrot
#if _MSC_VER < 1900
// * nem biztos, hogy j gy *
// * nem biztos, hogy jó így *
#define THROW_BADALLOC
#define THROW_NOTHING
#else
// C++11 vagy jabb
// C++11 vagy újabb
#define THROW_BADALLOC noexcept(false)
#define THROW_NOTHING noexcept
#endif
#else
#if __cplusplus < 201103L
// C++2003 vagy rgebbi
// C++2003 vagy régebbi
#define THROW_BADALLOC throw (std::bad_alloc)
#define THROW_NOTHING throw ()
#else
// C++11 vagy jabb
// C++11 vagy újabb
#define THROW_BADALLOC noexcept(false)
#define THROW_NOTHING noexcept
#endif
......@@ -144,9 +144,9 @@ END_NAMESPACE
#include <stdlib.h>
#ifdef __cplusplus
#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 <vector>
#include <algorithm>
......@@ -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;
/* 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;
......@@ -212,5 +212,8 @@ void operator delete[](void *p, int, const char *) THROW_NOTHING;
#endif /*MEMTRACE_CPP*/
#endif /*FROM_MEMTRACE_CPP*/
#endif /*MEMCHECK*/
#else
#pragma message ( "MEMTRACE NOT DEFINED" )
#endif /*MEMTRACE*/
#endif /*MEMTRACE_H*/
......@@ -104,14 +104,22 @@ int main() {
/// kipróbáljuk a unique-ot
char test[] = "ssszia C+++++ + !"; /// sok ismétlődő kar.
#ifndef CPORTA
#ifdef MEMTRACE
cout << "\ntest tomb tartalma a uniq hivasa elott\n";
memtrace::mem_dump(&test, sizeof(test));
#else
cout << "\nNincs definialva a MEMTRACE"
#endif // MEMTRACE
#endif // CPORTA
cout << test << endl;
char *p = sajat::unique(test, test+strlen(test));
#ifndef CPORTA
#ifdef MEMTRACE
cout << "\nuniq hivasa utan p: " << (void*)p << endl;
memtrace::mem_dump(&test, sizeof(test)); /// Segit megfigyelni a memóriatartalmat
#else
cout << "\nNincs definialva a MEMTRACE"
#endif // MEMTRACE
#endif // CPORTA
*p = 0; /// p az új sorozat végére mutat
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