AGB  ·  Datenschutz  ·  Impressum  







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

Problem bei SetLength()

Ein Thema von the3dcloser · begonnen am 19. Aug 2015 · letzter Beitrag vom 24. Aug 2015
Antwort Antwort
the3dcloser

Registriert seit: 5. Okt 2013
19 Beiträge
 
#1

AW: Problem bei SetLength()

  Alt 20. Aug 2015, 12:01
Sorry und du bist dir sicher das du das auch wirklich tust.? vor dem zweiten laden?
Wenn ja hilft dir nur debuggen.

Der Wert ist vor dem aufrufen zugewiesen, er ist bei der größeren Datei bei 2, bei der zweiten Datei bei 1. Beides sind meines Wissens nach eine gültige Zahl für SetLength()

Ich bin nur ein Hobby-Programmmierer, ohne jegliches Informatikvorwissen. Inwiefern soll mit denn dann "nur debuggen" ausführen?

Vielleicht ist es noch hilfreich, wenn ich die Assemblernachricht angebe:
Zitat von Assembler:
00403514 0f1004c6 movups (%esi,%eax,8),%xmm0
Ich persönlich kann damit nichts anfangen :/
  Mit Zitat antworten Zitat
Benutzerbild von frankyboy1974
frankyboy1974

Registriert seit: 7. Apr 2015
Ort: SH
169 Beiträge
 
Delphi XE7 Professional
 
#2

AW: Problem bei SetLength()

  Alt 20. Aug 2015, 12:24
Hallo,

also zwischen den beiden Aufrufen renderns du nur, nehmen wir an, du rufts da eine Funktion falsch auf, und dieses FALSCH aufrufen, führt dann am Ende zu dem von dir beschriebenen Problem. Du möchtest hier nicht deinen ganzen Quellcode posten, das ist soweit ok. Aber dann müsstest du auch das Problem grundsätzlich alleine lösen. Es macht wenig Sinn, ein Problem nur halb zu posten, und dann zu erwarten, dass die anderen sich die andere Hälfte dann selber holen

mfg

frank
Java ist auch eine Insel.
Ist Delphi von Oracle?
In meiner Buchstabensuppen fehlt das C++!
  Mit Zitat antworten Zitat
the3dcloser

Registriert seit: 5. Okt 2013
19 Beiträge
 
#3

AW: Problem bei SetLength()

  Alt 20. Aug 2015, 13:17
Ich habe es durchaus aufgenommen, dass der Fehler nicht von SetLength erzeugt wird, jedoch kommt die Fehlermeldung exakt bei dieser Zeile im Code.

Sonderlich glücklich bin ich bei der folgeden Handlung nicht, aber da das Projekt ja noch nicht ganz fertig ist, kann man ja ein Auge zudrücken.

Anbei sämtliche Projektdateien, sowie die beiden Beispieldateien. Auf Wunsch kann ich mehr Beispieldateien verfügbar machen.
Die zu ladendenden Dateien sind die *.trx Dateien, neben dieser Datei werden auch weitere Dateien, welche zum darstellen (via OpenGL) benötigt werden, geladen.


Download: http://www.file-upload.net/download-...4/Tool.7z.html
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#4

AW: Problem bei SetLength()

  Alt 20. Aug 2015, 14:06
Bei mir ist das Programm überhaupt nicht lauffähig.

1. Fehler in Zeile 257 der Mainunit.pas in TForm1.LoadShader.
ProgramO:=glCreateProgram;
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.

Geändert von BadenPower (20. Aug 2015 um 14:21 Uhr)
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#5

AW: Problem bei SetLength()

  Alt 20. Aug 2015, 12:54
Der Wert ist vor dem aufrufen zugewiesen, er ist bei der größeren Datei bei 2, bei der zweiten Datei bei 1. Beides sind meines Wissens nach eine gültige Zahl für SetLength()
Nochmals zum mitschreiben:

Die Fehlermeldung, welche uns der TE gepostet hat, wird NICHT durch die Funktion SetLength() erzeugt.

Egal was in "TRXHead.Materials" steht, wirft SetLength() niemals diesen Exceptiontyp.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.

Geändert von BadenPower (20. Aug 2015 um 12:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#6

AW: Problem bei SetLength()

  Alt 20. Aug 2015, 14:57
Egal was in "TRXHead.Materials" steht, wirft SetLength() niemals diesen Exceptiontyp.
Man kriegt das vermutlich hin, wenn man die Strings, das Array oder allgemein die Speicherverwaltung kaputt macht

Wenn man keine besseren Analysewerkzeuge hat, könnte man zum Beispiel versuchen, systematisch Programmbestandteile zwischen den Aufrufen auszukommentieren bis es wieder funktioniert.
  Mit Zitat antworten Zitat
the3dcloser

Registriert seit: 5. Okt 2013
19 Beiträge
 
#7

AW: Problem bei SetLength()

  Alt 20. Aug 2015, 16:53
Man kriegt das vermutlich hin, wenn man die Strings, das Array oder allgemein die Speicherverwaltung kaputt macht
Genau dies war die Lösung!
Ich habe den Strings im Betroffenen Record auf eine feste Länge reduziert, somit kommt beim mehrmaligen Laden nun kein Fehler mehr.

Dafür kommt nun beim Schließen des Programms die SIGSEGV Meldung, aber immerhin wurde dieses Problem gelöst

Geändert von the3dcloser (20. Aug 2015 um 16:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#8

AW: Problem bei SetLength()

  Alt 20. Aug 2015, 17:04
Dafür kommt nun beim Schließen des Programms die SIGSEGV Meldung, aber immerhin wurde dieses Problem gelöst
Ehrlich gesagt vermute ich, dass du die Symptome nur verschoben hast, und das Problem von Anfang an woanders lag. Wenn du alle Segfaults los bist, funktioniert es vermutlich auch mit dynamischen Strings
  Mit Zitat antworten Zitat
the3dcloser

Registriert seit: 5. Okt 2013
19 Beiträge
 
#9

AW: Problem bei SetLength()

  Alt 23. Aug 2015, 20:24
Wenn das Problem also woanders liegen sollte - ist es dann möglich, dass jemand für mich über den Code schaut? Ich bin mir immer noch im unklaren, woher genau dieser Fehler kommen könnte.

Das Programm (welches zumindest bei mir Lauffähig ist) gibts auf Seite 2
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

AW: Problem bei SetLength()

  Alt 23. Aug 2015, 21:21
Delphi-Quellcode:
var
 c:array[1..256] of PAnsiChar;

LoadCPO

BlockRead(f, c[0], 4);
Hier ist schon mal eine Verletzung der Untergrenze.
Zitat:
Das Programm (welches zumindest bei mir Lauffähig ist)
Trotz des Fehlers läuft es bei dir?

Kein DPR, DFM..

Ja Lazarus, deshalb bin ich raus.
Vielleicht hilft dir dieser Fehler schon mal.

gruss
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:42 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-2025 by Thomas Breitkreuz