JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Memoryleaks
Gehe zu Seite Zurück  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
DirectXer
Dark JLI'ler



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

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

aber wenn du es schon Ausgeführt hast, haste dein Leck 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, 18:36    Titel: Antworten mit Zitat

DirectXer hat Folgendes geschrieben:
aber wenn du es schon Ausgeführt hast, haste dein Leck Wink


Ist Sinn der Sache! Lecks kann man oft nur finden wenn es soweit ist. Ein leck in einem Raumschiff zu finden, geht auch nur wenn es schon da ist.
_________________
'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, 21:02    Titel: Antworten mit Zitat

Was passiert eigentlich bei Access Violation? Is das schlimm, lässt es sich leicht beheben oder bleibt es bis zum Neustart Question <-interessiert mich jetzt einfach mal Rolling Eyes
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fallen
JLI MVP
JLI MVP


Alter: 41
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

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

Die festplatte verkeilt sich bei einer Plattenebene und fängt an heiss zu laufen, meist sollte man da nen Rechner neustarten sonst haste nen heisse Platte ohne daten. Wink
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



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

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

FallenAngel84 hat Folgendes geschrieben:
Die festplatte verkeilt sich bei einer Plattenebene und fängt an heiss zu laufen, meist sollte man da nen Rechner neustarten sonst haste nen heisse Platte ohne daten. Wink


Autsch Very Happy

Nein, im RAM wird speicher nicht freigegeben und wird dem Betriebsystem nicht mehr zugängig, würde das jedes Programm machen summiert sich das bis es Knallt und Dein OS (Egal ob Linux oder Win) neustarten muss weil es kleben bleibt.
_________________
'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, 21:11    Titel: Antworten mit Zitat

DirectXer hat Folgendes geschrieben:
aber wenn du es schon Ausgeführt hast, haste dein Leck Wink

sowas passiert andauernd.
Wenn Speicher nicht mehr freigegeben wird, steht weniger für andere Programme zur Verfügung.
Der Speicher wird sozusagen zugemüllt und andere Programme laufen dadurch eventuell langsamer ab. Nach einem Neustart ist alles wieder "frisch".
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fallen
JLI MVP
JLI MVP


Alter: 41
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

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

Patrick hat Folgendes geschrieben:
FallenAngel84 hat Folgendes geschrieben:
Die festplatte verkeilt sich bei einer Plattenebene und fängt an heiss zu laufen, meist sollte man da nen Rechner neustarten sonst haste nen heisse Platte ohne daten. Wink


Autsch Very Happy


Was, nicht richtig? Shocked

Wink
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail 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, 21:16    Titel: Antworten mit Zitat

ähme... nicht das es jetzt damit was zu tun hätte, aber... gerade is mein Rechner DOWN gegangen. Einfach aus, *confused* jetzt isser ja wieder da Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
FH
Super JLI'ler


Alter: 37
Anmeldedatum: 16.10.2004
Beiträge: 438

Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 21:23    Titel: Antworten mit Zitat

@Fallen: Was bei Access Violation passiert, is ,dass ein Programm versucht im RAM Daten anderer Programme zu verändern... Das hat mit der HDD net viel zu tun (außer du schaffst es, den Controller davon zu treffen, der liegt aber, glaub ich, woanders). Ob er die Daten dann wirklich veränder, sollte Patrick (mal wieder) wissen, allerdings glaub ich net, dass ers schafft, sonst würde der Fehler ja wahrscheinlich net ausgelöst werden...
Gruß

FH
<edit>
Welches Wesen is dafür verantwortlich, dass hier ne Seite fehlt, und warum fehlt die Question Question Question
</edit>
_________________
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
PeaceKiller
JLI Master


Alter: 36
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 21:26    Titel: Antworten mit Zitat

@FH:
Du hast den Witz nicht kapiert, oder?
_________________
»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
Patrick
Dark JLI Master



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

BeitragVerfasst am: 20.03.2005, 21:32    Titel: Antworten mit Zitat

Hi,

nein Daten können nicht verändert werden, einfaches beispiel:
Code:
=========== DER GROßE RAM ==================
|0   ++++++++Windows++++++++++++++++++++
|1   + Verwaltung aller Resourcen   
|2
|3
|4
|5       ++++++++Hello World Programm+++++++
|6       + Teilt sich speicherbereich 2-5 und
|7       + versucht auf Speicherbereich 12 zuzugreifen
|8       +++++++++++++++++++++++++++++++++++
|9        |
|10       |
|11       |  ++++++++Word-Programm++++++++++
|12       X  + Teilt sich 11-15
|13          +
|14          +
|15          +++++++++++++++++++++++++++++++
|16
|17
|18
=========== DER GROßE RAM ENDE ==============


Nehmen wir an HelloWorld will auf einen unzulässigen Speicherbereich zugreifen, das geht jedoch nicht da die Programme inc. Zusatzdaten eigene Speicherblöcke haben. Hier ist der Word-Speicherblock weiter verschoben als der von Hello World und deshalb ist ein Zugriff unmöglich.

ACHTUNG: Das ist nur Platonisch, aber bevor ich hier rumgaukle in Fachlatein, belassen wir es dabei Wink
_________________
'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
Fallen
JLI MVP
JLI MVP


Alter: 41
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 20.03.2005, 21:34    Titel: Antworten mit Zitat

Access Violation = Zugriffs Verletzung

Ein Programm greift auf Speicher zu welches nicht für das Programm zur Verfügung gestellt bzw. reserviert wurde.

Das ist wie wenn du ne Strasse hast und rechts/links daneben is nen Minenfeld. Du verlässt die Strasse und deine (hoffentlich) hilfreichen Freunde warnen dich freundlicherweise das dort etwas lauert was dich nichts angeht.

Die Festplatte wird trotzdem heiss, hab nämlich massig heisse Bilder, so Razz
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 20.03.2005, 22:18    Titel: Antworten mit Zitat

HomeLess_PunkDrummer hat Folgendes geschrieben:
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

Aber dafür hat das Debuggen den Vorteil, dass man die Memoryleaks leichter erkennen und orten kann Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
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: 22.03.2005, 12:48    Titel: Antworten mit Zitat

hi, mir is grad beim Durchstöbern der Dateien vom 2. Buch was komisches aufgefallen. Die, die das Spiel schon en par mal gestartet haben, müssten(oder mussten) sich ein paar MemoryLeaks zugelegen haben:
JLI-Spieleprogrammierung(JLI-Asteroids) hat Folgendes geschrieben:
CPP:
// Explosion erzeugen
void CGameManager::CreateExplosion(D3DXVECTOR2 Position, float Scale)
{
    CSprite* Explosion = new CSprite;

    // die Explosionen werden mit 12 Animationsstufen pro Sekunde abgespielt
    Explosion->Create(m_lpD3DDevice,m_lpResManager,12);

...

void CGameManager::CreateAsteroid(void)
{
    CSprite* Asteroid = new CSprite;

    // die Animation der Asteroiden wird mit einer zufällig gewählten Geschwindigkeit abgespielt
    Asteroid->Create(m_lpD3DDevice,m_lpResManager,rand()%5 + 4);

...

void CGameManager::CreateSmallAsteroids(D3DXVECTOR2 Position)
{
    CSprite* SmallAsteroids[CREATE_SMALL_ASTEROIDS];

    // es werden CREATE_SMALL_ASTEROIDS kleine Asteroiden angelegt
    for(int i=0;i<CREATE_SMALL_ASTEROIDS;i++)
    {
        SmallAsteroids[i] = new CSprite;

...

// Sprite für eine Photonenschuss erzeugen
void CGameManager::CreateShot(D3DXVECTOR2 Position,float Rotation)
{
    CSprite* Shot = new CSprite;
...


das delete fehlt nämlich immer(oder es gibt ne andere Funktion, den Speicher wieder freizugeben, die ich net kenne...)

Außerdem noch was:
JLI-Spieleprogrammierung(JLI-Asteroids) hat Folgendes geschrieben:
CPP:
m_lpDXAudio    = NULL;
m_lpD3DDevice  = NULL;
m_lpResManager = NULL;


...kein m_lpD3DDevice->Release(); usw.

Gruß DirectXer, der sich wundert, ob das wirklich stimmen kann und auf andere Meinungen wartet thinking
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: 22.03.2005, 13:02    Titel: Antworten mit Zitat

Hast du dir schonmal die Destruktoren angehschaut?
_________________
»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
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 Zurück  1, 2, 3  Weiter
Seite 2 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