AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Schreibschutz für Objekte???

Ein Thema von Leanahtan · begonnen am 1. Feb 2010 · letzter Beitrag vom 1. Feb 2010
 
Leanahtan

Registriert seit: 5. Jun 2009
62 Beiträge
 
Turbo Delphi für Win32
 
#1

Schreibschutz für Objekte???

  Alt 1. Feb 2010, 04:38
Ok, das Thema ist vielleicht nicht so ganz aussagekräftig, aber mir ist nichts besseres eingefallen. Also ich habe folgendes Problem. In unserem Projekt benutzen wir eine ISO-Engine (auf Basis von Delphix). Im Laufe der Jahre hatten wir immer mal Fehler, die wir nicht wirklich erklären konnten, und wo wir lediglich vermutet haben, dass eventuell eine der DXDraw-Funktionen Bereiche im Arbeitssspeicher überschreibt. Das Problem trat aber nur sehr selten auf, und konnte nie reproduziert werden. Jetzt hab ich einige Änderungen an der ISO-Engine vorgenommen - während bisher alle Tile-Grafiken in einem einzigen Surface gespeichert wurden, hat jetzt jedes Tile sein eigenes Surface.
Allerdings ist jetzt der Fehler mit dem Überschreiben anderer Bereiche im Arbeitsspeicher nahezu reproduzierbar (man muss nur 1-2 Minuten ausprobieren). Im aktuellen Zustand wird im Laufe der Zeit ein eigentlich unabhängiges Surface (Soldatenportraits) überschrieben, was sich zuerst durch Darstellungsfehler bemerkbar macht, und irgendwann einen Crash verursacht. Leider habe ich keine Ahnung, wie man in so einem Fall die Ursache suchen sollte. Zu Delphix gibt es ja kaum eine ordentliche Doku. Außerdem hat Jim_Raynor vor Jahren eine Menge Änderungen vorgenommen, um z.B. Alphablending zu beschleunigen - ein Update auf die aktuelle Version von (un)Delphix ist also auch nicht möglich. Ich selbst hab eigentlich keine Ahnung von Delphix ^^. Meine einzige Idee war bis jetzt, den Speicherbereich für das Surface der Soldatenportraits irgendwie schreibgeschützt zu machen (und diesen Schreibschutz nur bei Bedarf aufzuheben), um so eine Zugriffsverletzung auszulösen, sobald irgendwo eine Funktion in diesen Speicherbereich schreiben will. Ist sowas irgendwie möglich? Oder habt ihr noch andere Ideen, wie man einem solchen Fehler auf die schliche kommen könnte?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz