Betrachten Sie den folgenden Code ein: http://hpaste.org/90394Segfault Lesen faul bytestring letzten 2^18 Byte
Ich bin Speicher eine große 460 MB-Datei zu einem faulen ByteString zuordnen. Die Länge der ByteString-Berichte lautet 471053056
.
Wenn zu einer niedrigeren Knoten-ID geändert wird, dh: 10000
, funktioniert es einwandfrei. Jedoch; sobald ich versuche, etwas zu serialisieren, das genau 2^18 Bytes (262144
) vom ByteString hinter mir liegt, bekomme ich Segmentation fault/access violation in generated code
und die Beendigung.
Ich verwende Windows und verwende GHC 7.4.2.
Bitte geben Sie an, ob dies meine Schuld ist, oder ein Problem mit der Faulheit, oder ein Problem mit Haskell.
Ihr 'getNXNode' stimmt nicht mit der' NXNode' -Datendefinition überein. Wenn das beabsichtigt ist, wäre es einen Kommentar wert. Aber ich sehe nicht, wie das hier einen Segfault verursachen würde. –
@DanielFischer 'NXNode 0 <$> ...' :) – kvanberendonck
Ja, aber Sie "überspringen" 20 Bytes und lesen nur 12 pro Knoten. –