JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=70e6f7f483a6e5af88060d5f1bc84ba7Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Memoryleaks
Gehe zu Seite 1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
FH
Super JLI'ler


Alter: 37
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 11:48    Titel: Memoryleaks Antworten mit Zitat

DirectXer in Inside DirectX hat Folgendes geschrieben:
Is denn der VC++ 7.1 Compiler in der Lage, MemoryLeaks zu finden?

Is überhaupt ein Compiler in der Lage, MemLeaks zu finden???
Noch was: Das, mit dem an die Unterschrift nen Kommentar anzuhängen is von Patrick patentuiert. Wink
Gruß

FH, der das jetzte auch mal macht Wink
_________________
goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 11:59    Titel: Antworten mit Zitat

DirectXer hat Folgendes geschrieben:
Is denn der VC++ 7.1 Compiler in der Lage, MemoryLeaks zu finden?


MemoryLeaks haben nichts mit Compilern zu tun sondern mit der Doofheit des Coders. Smile
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 12:08    Titel: Antworten mit Zitat

Hehe, hab ich auch von Patrick

Patrick hat Folgendes geschrieben:
DirectXer hat Folgendes geschrieben:
Is denn der VC++ 7.1 Compiler in der Lage, MemoryLeaks zu finden?


MemoryLeaks haben nichts mit Compilern zu tun sondern mit der Doofheit des Coders. Smile


Ähme... Seite 141 im 2.Buch rechts unten im Kasten:

JLI-Spieleprogrammierung hat Folgendes geschrieben:
Einige Compiler und Compilerzusätze sind in der Lage, Memory Leaks automatisch zu lokalisieren. Leider verfügt die Edition von VC++, die dem Buch beiliegt, nicht über diese Funktionalität. Erst ab der Ausbaustufe Professional kann VC++ Memory Leaks automatisch aufspüren.


Daher die Frage, ob der VC++ 7.1 Compiler auch Memory Leaks aufspüren kann... Wink

Gruß DirectXer, der diese Kommentare cool findet, und sie weiterhin verwendet Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 12:30    Titel: Antworten mit Zitat

Oh man, was für ein Bullshit.... Schneid diesen Unsinn besser mit einer Schere raus.

Hier mal 3 Methoden ein Speicherleck in der größe Europas zu erschaffen:
CPP:
#include <iostream>

void foo (int *out)
{
    out[55] = 5;
}
 
 int main (void)
 {
     int *x = new int[5];

     x[10] = 5;

     foo(NULL);

     ::std::cin.get ();
 
     return 0;
 }


Jeder Compiler muss diesen Code ohne warnings/errors compilieren, da Pointerhandling nicht immer konstant sein muss sondern auch variabel und der Speicher über Funktionen (sogar über Programminstanzen) hinaus gehen können, deshalb wären warnings/errors unsinnig.

Der Debugger kann helfen Memoryleaks zu finden zur Runtime, aber der Debugger ist definitiv nicht der compiler und auch nicht der linker!

Und wie schon gesagt: "MemoryLeaks haben nichts mit Compilern zu tun sondern mit der Doofheit des Coders."
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
HomeLess_PunkDrummer
JLI Master Trainee


Alter: 36
Anmeldedatum: 28.11.2004
Beiträge: 583
Wohnort: Alter Joghurtbecher an der A4
Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 13:10    Titel: Antworten mit Zitat

Hö? DAs da oben sieht aber eher nach einer kräftigen Access Violation aus. Question
_________________
"Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 13:13    Titel: Antworten mit Zitat

jo, thx, hast Recht. War mir auch schon komisch, mit welcher Methode man Memory Leaks aufspüren sollte. Aber ich dachte, wenns da steht... Rolling Eyes

Und Memory Leaks mit'm Debugger zu suchen is auch net immer gut, weils ja während der Runtime is; aber solange man aufpasst...

Man könnte ja ma en Programm schreiben, dass so ein Speicherleck erzeugt und als "Virus" verschicken Twisted Evil Twisted Evil Twisted Evil

Gruß DirectXer, der jetzt auf Christian wartet und sehen will, was er dazu sagt Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 13:20    Titel: Antworten mit Zitat

HomeLess_PunkDrummer hat Folgendes geschrieben:
Hö? DAs da oben sieht aber eher nach einer kräftigen Access Violation aus. Question


Ungültige Zugriffe sind die extremeren Memoryleaks der Stufe 1, da das delete fehlt (von denen es 2 Varianten gibt) entsteht ein Memoryleak der Stufe 3, die gängigeren Memoryleaks die erst nach einem Neustart verschwunden sind.

DirectXler hat Folgendes geschrieben:
Und Memory Leaks mit'm Debugger zu suchen is auch net immer gut, weils ja während der Runtime is; aber solange man aufpasst...


Ist Sinn der Sache die nur zur Runtime zu finden, denn wie willst Du dynamik testen ohne sie zum laufen zu bringen?

Das wäre so als wenn Du KFZ Techniker wärst und es kommt jemand der sagt "Mein Auto quietscht beim Fahren" und Du fährst mit der Karre nicht mal um den Fehler genauer zu lokalisieren.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 13:55    Titel: Antworten mit Zitat

Um Memoryleaks aufzuspüren kann man auch die Operatoren new und delete überschreiben.

Immer wenn new aufgerufen wird, kann man zusätzlich einen Zähler erhöhen. Bei jedem delete Aufruf wird der Zähler wieder um 1 veringert.

Am Ende des Programmes, kann man dann überprüfen wieviele Speicherbereiche nicht freigegeben wurden. Im besten Fall 0. Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 14:12    Titel: Antworten mit Zitat

Patrick hat Folgendes geschrieben:
DirectXer hat Folgendes geschrieben:
Und Memory Leaks mit'm Debugger zu suchen is auch net immer gut, weils ja während der Runtime is; aber solange man aufpasst...


Ist Sinn der Sache die nur zur Runtime zu finden, denn wie willst Du dynamik testen ohne sie zum laufen zu bringen?

Das wäre so als wenn Du KFZ Techniker wärst und es kommt jemand der sagt "Mein Auto quietscht beim Fahren" und Du fährst mit der Karre nicht mal um den Fehler genauer zu lokalisieren.

Ich meint, wenn de en Programm schreibst, testest du es ja erst(endweder Kompilieren( Smile ) oder gleich Erstellen/Ausführen( Sad )), bevor du es debugst(wenn überhaupt Exclamation ) Also: Nur wenige debuggen ein frisch geproggtes Programm zuerst, wenn sie keine Angst vor MemLeaks haben(sie denken ja net gleich an so was)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 14:48    Titel: Antworten mit Zitat

achwas, aber was hat das jetzt mit dem Einen zu tun?
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 15:59    Titel: Antworten mit Zitat

direkt nichts, aber das EINE hatte nen Hintergrundgedanken, und der steht oben. Mit "mit'm Debugger zu suchen is auch net immer hilfreich" meinte ich, dass nur wenige das wirklich tun; die meisten gehn schon vorher auf Erstellen

Gruß DirectXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
PeaceKiller
JLI Master


Alter: 36
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 16:06    Titel: Antworten mit Zitat

[ ] du kennst den genauen Unterschied zwischen kompilieren und debuggen
[x] du solltest dich mehr mit dem Thema beschäftigen

edit:

[x] du solltest versuchen eine klare Struktur in deine Sätze zu bringen
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 16:15    Titel: Antworten mit Zitat

ok:
CPP:
struct SentenceStructure
{
        operator ""......


Laughing ich werd mich net mehr damit rumschlagen Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
HomeLess_PunkDrummer
JLI Master Trainee


Alter: 36
Anmeldedatum: 28.11.2004
Beiträge: 583
Wohnort: Alter Joghurtbecher an der A4
Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 16:25    Titel: Antworten mit Zitat

In Bezug auf eventuelle Memory Leaks besteht doch zwischen nur Kompilieren und direkt Ausführen gar kein Unterschied? Da sie erst zur Laufzeit auftreten? Shocked Wink
_________________
"Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 16:48    Titel: Antworten mit Zitat

HomeLess_PunkDrummer
erfasst.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Gehe zu Seite 1, 2, 3  Weiter
Seite 1 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum