Seite 1 von 2

Absturz bei Fehlschlagen von AllocateMemory()

Verfasst: 06.07.2009 17:49
von cxAlex
Ich wollte mal testen ab wann AllocateMemory() fehlschlägt, und musste feststellen das es immer zu einem IMA kommt sobald der Befehl daneben geht. Laut ProcessExplorer schafft es das Programm sich ~ 2GB Ram zu greifen bevor es abstürzt:

Code: Alles auswählen

#Size = 1000
Repeat
  *Mem = AllocateMemory(#Size)
  If *Mem = 0
    Debug Str(Count*#Size) + " Bytes konnten angefordert werden"
    Break
  EndIf
  Count + 1
ForEver
Kann das jemand bestätigen?

Gruß, Alex

Verfasst: 06.07.2009 17:51
von Andesdaf
bei mir kommt kein IMA
2021406000 Bytes konnten angefordert werden
PureBasic 4.31 unter Windows Vista x86

Verfasst: 06.07.2009 17:51
von Kaeru Gaman
brauch ich garnicht testen, ist doch ganz klar.
JEDE App unter windows bekommt maximal 2GB zur Verfügung gestellt,
also wie sollte man mehr als 2GB allocieren können?

@Andesdaf:
das sind ja auch nur 1.88GB

Verfasst: 06.07.2009 17:54
von cxAlex
Kaeru Gaman hat geschrieben:brauch ich garnicht testen, ist doch ganz klar.
JEDE App unter windows bekommt maximal 2GB zur Verfügung gestellt,
also wie sollte man mehr als 2GB allocieren können?

@Andesdaf:
das sind ja auch nur 1.88GB
Ja, ne ist klar, es geht nur darum das ich das Debug nie angezeigt bekomme ,die Zeile rot ist und ich nen IMA bekomme.

Verfasst: 06.07.2009 17:56
von Andesdaf
Kaeru Gaman hat geschrieben:@Andesdaf:
das sind ja auch nur 1.88GB
wollte aber die Debugausgabe zur Vollständigkeit mit einstellen.
Ansonsten geht es ja nicht um die Kapazität sondern um den IMA, wie cxAlex
grade schrieb.

Verfasst: 06.07.2009 18:24
von ts-soft
Kein Programmabsturz:
4.31 x86 win:
Debugger hat geschrieben:1997738000 Bytes konnten angefordert werden
4.31 x64 win:
Windows friert komplett ein, lediglich der Mauszeiger läßt sich noch bewegen :freak:

Verfasst: 06.07.2009 18:30
von cxAlex
Komische Ergebnisse. Laut Process - Explorer schafft es die Exe bei mir auch ca. zwischen 1.8 - 1.9 GB zu allokieren bevor Sie abschmiert.

Ich hab ne Idee worans liegen könnte, bin jetzt aber mal weg, in ca. 2 - 3 Stunden kann ich sagen obs das war was ich mir grade denke.

Gruß, Alex

Verfasst: 06.07.2009 19:05
von ts-soft
Unter Linux ähnliche Probleme.
x86 lin:
Debugger hat geschrieben:Das mit dem Debugger getestete Executable endete unerwartet.
x64 lin:
Linux friert ein :freak:

Also bei mir funktioniert nur win x86 korrekt.

Verfasst: 06.07.2009 21:28
von cxAlex
Ich habs:

Ich hab meine Ramdisk von 1 GB auf 512 MB gedrosselt. Vorher war ich bei 1.5 GB Standartverbrauch + 2 GB im Test hart an der Grenze zum adressierbaren Arbeitsspeicher. Nun kommt die Meldung ohne IMA, ich kann 1.96 GB belegen. Komisch nur das es nen IMA gibt, sollte Windows nicht einfach auf die HD swappen?

PS: Ah, natürlich seeehr intelligent wenn man die maximale Größe der Auslagerungsdatei auf 0 festlegt ^^. Keine Ahnung was ich mir da gedacht habe ^^

Verfasst: 06.07.2009 21:37
von ts-soft
Trotz allem liegt ein Bug vor, da es nur unter 32-Bit Windows richtig
funktioniert. Wäre schön wenn das noch jemand bestätigen könnte.