Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: maumo am 31. July 2005, 16:27
-
also ich weis net aber ich glaub das ding mag mich nich...
ich hab versucht den fehler in meinem MT zu finden und nach stundenlangem hin und her hab ich den fehler gefunden:
KernelHeapSegment* Segment = NULL;
KernelHeap.Bottom = (Address)0x220000;
KernelHeap.Top = (Address)0x400000;
KernelHeap.Inited = 1;
Segment = (KernelHeapSegment*)(KernelHeap.Bottom);
Debug("S=%h", Segment);
if(Segment = NULL)
return;
Segment->Next = NULL;
Segment->Size = (UInt32)(KernelHeap.Top - KernelHeap.Bottom);
Segment->State = HeapSegmentFree;
Segment->Magic = KHeapMagic;
die ausgabe ist merkwürdigerweise
S=0x0.
Debug funtzt richtig...
also ich überlege wirklich nur noch pur asm zu coden... aber vielleicht hat ja noch jemand so ne probleme?
-
sicher, dass das richtig ist?
if(Segment = NULL)
meinst du vieleicht das?
if(Segment == NULL)
-
tipp fehler... aber an dem problem ändert dass nichts...
-
kann es sein, dass KernelHeap in einem nicht beschreibbaren speicher liegt?
sonst schau dir doch mal den assembler output an
gcc -masm=intel -S datei.c
vielleicht hilft er dir den fehler zu finden.
-
also jetzt wirds ganz confuse: ich hab einfach das "Debug" nach dem if(Segment...) gesetzt, und was is? es funtzt.
dann wollt ich das ganze nich so glauben und hab das nochmal rückgängig gemacht... kein fehler... ich glaub ich krepier...