Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Speicherbegrenzung + Kernelspace

  1. #1
    Registrierter Benutzer
    Registriert seit
    04.05.2005
    Ort
    Dortmund
    Beiträge
    31

    Speicherbegrenzung + Kernelspace

    Hab' da mal 'ne Frage bezüglich Kernelprogrammierung: ich schreibe momentan ein Modul, dass ein Procfile erstellt. Die Daten werden in einem eindimensionalen char-Array gespeichert.
    Das Problem ist, dass ich nicht mehr als 1024 Zeichen in das Array einfügen kann - habe mehrere Stringfunktionen ausprobiert bzw. sie auch zum Test selbst implementiert. Leider hat kein Ansatz funktioniert...

    Hat jemand eine Ahnung, ob es irgendeine Speicherbegrenzung gibt?

    Mfg, Lord Kefir

  2. #2
    Registrierter Benutzer
    Registriert seit
    05.06.2003
    Beiträge
    118
    Wie groß ist denn das Array? Und nein, es gibt keine Begrenzung in deiner Größenordnung.

    TME

  3. #3
    Registrierter Benutzer
    Registriert seit
    04.05.2005
    Ort
    Dortmund
    Beiträge
    31
    Es ist ein simples Char-Array mit 1024 Zeichen. Wie gesagt, 'strcat' und ähnliche Standardfunktionen versagen seltsamer Weise. Bei dem Array handelt es sich um einen Buffer für ein Procfile.
    Ich kann scheinbar machen was ich will - durch diverse Tests habe ich herausgefunden, dass bei 1024 Zeichen 'ne Grenze liegt.

    Mfg, Lord Kefir

  4. #4
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Durch welche Tests? Was passiert, wenn du das Array auf 2048 erhöhst?
    Legst du das Array auf dem Stack an?

    Fragen über Fragen...

  5. #5
    Registrierter Benutzer
    Registriert seit
    05.06.2003
    Beiträge
    118
    Ich bin mir nicht sicher, ob ich da nicht was falsch verstanden habe. Korrigiere mal bitte die Punkte, die du anders gemeint hast.

    1. Du legst ein char-Array (char[1024]) mit 1024 Zeichen Größe an (Indizies 0..1023)
    2. Du möchtest mehr als 1024 Zeichen darin unterbringen. Dies funktioniert nicht. Du fragst dich, warum nicht.

    So, wie es mir scheint, ist das technisch völlig okay.

    TME

  6. #6
    Registrierter Benutzer
    Registriert seit
    04.05.2005
    Ort
    Dortmund
    Beiträge
    31
    Jep, Du hast mein Problem richtig verstanden...

    Mensch, manchmal sind Probleme echt dämlich Das Problem lag nicht an meinem Modul sondern an meinem Terminal. Wenn ich mein Procfile mit 'cat' ausgebe werden mehr Zeichen ausgegeben, als mein Terminal auf einmal verkraftet - ab 1024 Zeichen wird der Rest einfach abgeschnitten. Habe die Datei einfach mal mit einem Editor geöffnet (vi) und siehe da: alles ist in Ordnung.

    Naja... hätte ich auch mal eher drauf kommen können, als den Code stundenlang nach Fehlern zu durchsuchen...

    Mfg, Lord Kefir

  7. #7
    Registrierter Benutzer
    Registriert seit
    20.11.2004
    Beiträge
    122
    Ich haette jetzt (wie Thomas wahrscheinlich auch...) an nen Buffer Overflow gedacht. Merkwuerdig.

  8. #8
    Registrierter Benutzer
    Registriert seit
    04.05.2005
    Ort
    Dortmund
    Beiträge
    31
    Das war auch erst meine Vermutung, weshalb ich stundenlang vergebens den Sourcecode überpüft habe... ich bin froh, dass sich der Fehler im Endeffekt als so einfach herausgestellt hat.

    Mfg, Lord Kefir

  9. #9
    Registrierter Benutzer
    Registriert seit
    05.06.2003
    Beiträge
    118
    Zitat Zitat von `kk
    Ich haette jetzt (wie Thomas wahrscheinlich auch...) an nen Buffer Overflow gedacht. Merkwuerdig.
    Merkwürdig kam mir nur vor, daß der Overflow genau nach bereits einem Zeichen zuviel auftreten soll. Normalerweise hat man nicht so ein Glück, die Segmentgrenzen so offensichtlich gut zu erwischen

    TME

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •