Einzelnen Beitrag anzeigen

Benutzerbild von MrMooed
MrMooed

Registriert seit: 18. Feb 2012
101 Beiträge
 
Delphi 7 Enterprise
 
#1

Debuggen einer Schleife

  Alt 16. Jan 2014, 21:08
Guten Abend DPler,

langsam glaube ich, dass mich Delphi trollen will.
Innerhalb einer Schleife kommt es regelmäßig zu einer AV. Jedoch ist das komische, dass sie immer an einer anderen Stelle auftritt. Mal nach der 10.000 Iteration, mal "erst" nach der 14.000

Mit einigen try-except-Blöcken konnte ich nun nachvollziehen, dass es *scheinbar* an dem Constructor eines Objekts liegt.
Delphi-Quellcode:
type
FeldArray1D = Array of TFeld;
var
folgeZustand, Zustand: TStack;
aArray: FeldArray1D
Feld: TFeld;
begin
for y:=0 to High( aArray ) do
      try
        folgeZustand.push( TZustand.create( without(aArray, y), Feld, TZustand( Zustand.top ) ) );
      except
        showmessage('Fehler bei Zustand.create'); // Wird ausgelöst
      end;
end;
Nur das (für mich) Komische ist, dass der try-except-Block in dem constructor nicht ausgelöst wird

Delphi-Quellcode:
constructor TZustand.create(const pBrennt: FeldArray1D; const pGeloescht: TFeld;
  const pVorgaenger: TZustand);
begin
  try
  lVerbrannt := pBrennt;
  fGeloescht := pGeloescht;
  zVorgaenger := pVorgaenger;
  except
    showmessage('Fehler in create'); // Keine Reaktion
  end;
end;
Kann es evtl. sein, dass nur eine begrenzte Anzahl an Objekten erstellt werden kann ? Das ganze wird wie gesagt mehrere Tausend Mal aufgerufen.
Oder gibt es einen ganz simplen Trick, mit dem ich per debugger an das Problem herangehen kann ? Denn wenn das ganze mal wieder crashed, kommt nur die AV-Meldung und das CPU-Fenster öffnet sich - nicht die gecrashte Quellcodezeile
Gruß,
MrMooed
"Unsere Luft hat einen Vorteil: Man sieht was man einatmet" - Ein Chinese
  Mit Zitat antworten Zitat