-
05.05.12 20:19 #16
Mitglied Gold
- Registriert seit
- Feb 2011
- Beiträge
- 199
VirtualBox; Bochs startet einfach gleich neu.
-
05.05.12 20:23 #17
Nimm Bochs

Und zwar aus einem Grund: An Bochs kann man GDB dran hängen und damit debuggen. Außerdem kann man Bochs so konfigurieren, das er nicht neu startet - wenn ich mich richtig erinnere (ist schon ne Weile her, dass ich mich mit dem Thema beschäftigt habe).
Läuft der Kernel denn, wenn du die Initialisierung der GDT - also den Funktionsaufruf - wieder raus nimmst? Wenn ja, dann zeig mal den kompletten Code für die GDT. Da bauen Neulinge (auch wie ich damals) gern Fehler ein - ist ein bisschen tricky das Thema.Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
05.05.12 20:29 #18
Mitglied Gold
- Registriert seit
- Feb 2011
- Beiträge
- 199
Klar, mach ich natürlich, aber daran kann es doch im Prinzip nicht liegen, weil alles perfekt funktioniert, wenn ich die Strukturen, Variablen und Funktionen alle in der main.c habe und die anderen Dateien weglasse, oder?
EDIT:
Weiß jemand, wie automatisches Neustarten verhindert wird? Google hilft mir leider nicht. *beleidigt*
EDIT2:
Ich hab's grad mit echter Hardware versucht (meinem PC) und dort ist es das selbe wie in der VBox.Geändert von üäpöol (05.05.12 um 20:38 Uhr)
-
05.05.12 21:25 #19
Versuch mal das: Öffne die bochsrc-Datei und such nach der Zeile, die mit cpu anfängt. In der stehen Parameter, die durch Komma getrennt sind. Füge dort einen zusätzlichen Parameter reset_on_triple_fault=0 hinzu.
Ansonsten wäre noch zu erwähnen, das Bochs loggen kann. Das solltest du verwenden. Hier ist das Manual zur bochsrc: http://bochs.sourceforge.net/doc/doc...r/bochsrc.html
Und: Solange du keinen Source zeigst oder sonst irgendwelche Hinweise z.B. ein Log-File kann man dir schlecht helfen.Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
05.05.12 21:36 #20
Mitglied Gold
- Registriert seit
- Feb 2011
- Beiträge
- 199
Ich hab's jetzt so gestartet und bekomme folgende Fehlermeldung:
Aber nochmal die Frage: Kann es am normalern Code liegen?! Es funktioniert wie gesagt alles perfekt, wenn die Funktionen, Variablen und Strukturen in der main.c deklariere und definiere. Ich habe ja nur versucht, Teile der Datei auszulagern, um mehr Übersichtlichkeit zu haben. Und erst jetzt gibt es das Problem, das der Kernel "hängt". Denn imho muss es doch daran liegen, dass ich die Strukturen, Variablen und Funktionen falsch in die andere Datei ausgelagert habe, oder?Code :1
exception(): 3rd (13) exception with no resolution
EDIT:
Nachdem ich auf Continue gedrückt habe, kommt noch diese Fehlermeldung:
Vielleicht hilft das ja.Code :1
Entering to shutdown state still not implemented
-
05.05.12 21:42 #21
Es liegt mit sehr großer Wahrscheinlichkeit am Code. Exception 13 ist ein General Protection Fault. Der tritt im Zusammenhang mit der GDT gern dann auf, wenn man die Segment-Daten falsch angegeben hat.
Wenn du willst, kannst du dein Projekt mal anhängen, dann werde ich einen Blick darauf werfen.
Nur weil man den Code auf mehrere Dateien auslagert, geht die Runtime nicht kaputt. Da muss schon etwas zusätzlich passiert sein.
EDIT: Es hilft nur soweit, das ich jetzt weiß, das du nicht die neueste Version von Bochs (2.5.1) verwendest sondern die höchstens 2.4.5.
EDIT2: Ich ziehe den Edit zurück: Die Meldung kommt bei 2.5.1 auch noch. Hab den Source grade angeschaut.
EDTI3: Die Meldung sagt eigentlich nur aus, was auch schon die erste Meldung aussagt: Da ist ein Triple-Fault aufgetreten, weil noch keine IDT implementiert ist:
Code c:1 2 3 4 5 6 7 8 9 10
// // The shutdown state is very similar to the state following the exection // if HLT instruction. In this mode the processor stops executing // instructions until #NMI, #SMI, #RESET or #INIT is received. If // shutdown occurs why in NMI interrupt handler or in SMM, a hardware // reset must be used to restart the processor execution. // void BX_CPU_C::shutdown(void) { BX_PANIC(("Entering to shutdown state still not implemented"));
Geändert von saftmeister (05.05.12 um 21:56 Uhr)
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
05.05.12 22:13 #22
Mitglied Gold
- Registriert seit
- Feb 2011
- Beiträge
- 199
OK, saftmeister. Ich zeige dir kaum Code von mir, nicht mal Fehlermeldungen und trotzdem hast du zu 100% Recht! Das nenne ich mal Genie!

Es lag am Code. Ich habe eine "alte" Version des OS' wiederhergestellt, wieder dasselbe - bzw. offensichtlich nicht - wie zuvor gemacht und - es funktioniert! Ich habe alles jetzt extern. Das ist wirklich großartig. Leider funktioniert es nur in der VirtualBox und mit echter Hardware, aber komischerweiser nicht mit bochs.
Es gibt exakt dieselben Fehlermeldungen wie zuvor. Wie komme ich denn an den log?Geändert von üäpöol (05.05.12 um 22:17 Uhr)
-
05.05.12 22:21 #23
Danke für die Blumen, aber Genie ist übertrieben - hab nur ein paar Erfahrungen mit dem Kram.
Du kannst in der bochsrc das Logging aktivieren.
Folgende Zeilen sind relevant (wenn noch nicht vorhanden, einfach mal einfügen):
Code :1 2 3 4 5 6 7
log: bochsout.txt logprefix: %t-%e-@%i-%d debug: action=report info: action=report error: action=report panic: action=ask debugger_log: debugger.out
Bei "debug:" kannst auch auf "action=ignore" stellen, wenn die Logs dadurch zu viel werden.
Die Angaben "log:" und "debugger_log:" sind Namen der Dateien, in die geloggt werden soll. Du kannst IMHO auch vollständige Pfade verwenden.
EDIT: Was mir grade aufgefallen ist - ich weiß nicht mehr, obs den bei 2.4.5 auch schon gegeben hat, aber seit ich 2.5.1 installiert habe, gibts bochsdbg.exe im Installationsordner. Wenn du das Image noch hast, bei dem der TF aufgetreten ist, kann man das mal versuchen zu debuggen.Geändert von saftmeister (05.05.12 um 22:24 Uhr)
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
05.05.12 22:34 #24
Mitglied Gold
- Registriert seit
- Feb 2011
- Beiträge
- 199
Das andere Browserfenster versucht gerade verzweifelt, den Code abzuschicken, deshalb versuche ich, die Datei mal anzuhängen.
-
06.05.12 17:11 #25
Ok, lass uns mal schauen, ob wir da nicht was rauslesen können:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
00072507865-d-@0000b383-[PIC ] IO write to 0020 = 20 00072507873-d-@0000d0e2-[CPU0 ] interrupt(): vector = 16, TYPE = 4, EXT = 0 00072508065-d-@0000c140-[CPU0 ] protected mode activated 00072508144-d-@0000c187-[CPU0 ] real mode activated 00072508157-d-@0000c862-[CPU0 ] interrupt(): vector = 15, TYPE = 4, EXT = 0 00072508247-d-@0000c140-[CPU0 ] protected mode activated 00072510971-d-@0010000e-[CPU0 ] BxError: Encountered an unknown instruction b1=0xff (signalling #UD) 00072510971-d-@0010000e-[CPU0 ] modrm was 0xff, nnn was 7, rm was 7 00072510971-i-@0010000e-[CPU0 ] 0x000000000010000c>> (invalid) : FFFF 00072510971-d-@0010000e-[CPU0 ] exception(0x06): error_code=0000 00072510971-d-@0010000c-[CPU0 ] interrupt(): vector = 06, TYPE = 3, EXT = 1 00072510971-e-@0010000c-[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x06) 00072510971-d-@0010000c-[CPU0 ] exception(0x0d): error_code=0032 00072510971-d-@0010000c-[CPU0 ] interrupt(): vector = 0d, TYPE = 3, EXT = 1 00072510971-e-@0010000c-[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x0d) 00072510971-d-@0010000c-[CPU0 ] exception(0x0d): error_code=006a 00072510971-d-@0010000c-[CPU0 ] exception(0x08): error_code=0000 00072510971-d-@0010000c-[CPU0 ] interrupt(): vector = 08, TYPE = 3, EXT = 1 00072510971-e-@0010000c-[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x08) 00072510971-d-@0010000c-[CPU0 ] exception(0x0d): error_code=0042 00072510971-i-@0010000c-[CPU0 ] CPU is in protected mode (active) 00072510971-i-@0010000c-[CPU0 ] CS.mode = 32 bit 00072510971-i-@0010000c-[CPU0 ] SS.mode = 32 bit 00072510971-i-@0010000c-[CPU0 ] | EAX=2badb002 EBX=0000d48c ECX=ffffffff EDX=0000f000 00072510971-i-@0010000c-[CPU0 ] | ESP=00006c78 EBP=00006cdc ESI=02102190 EDI=00102190 00072510971-i-@0010000c-[CPU0 ] | IOPL=0 id vip vif ac vm RF nt of df if tf sf zf af pf CF 00072510971-i-@0010000c-[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D 00072510971-i-@0010000c-[CPU0 ] | CS:0028( 0005| 0| 0) 00000000 ffffffff 1 1 00072510971-i-@0010000c-[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 00072510971-i-@0010000c-[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 00072510971-i-@0010000c-[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 ffffffff 1 1 00072510971-i-@0010000c-[CPU0 ] | FS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 00072510971-i-@0010000c-[CPU0 ] | GS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 00072510971-i-@0010000c-[CPU0 ] | EIP=0010000c (0010000c) 00072510971-i-@0010000c-[CPU0 ] | CR0=0x00000011 CR2=0x00000000 00072510971-i-@0010000c-[CPU0 ] | CR3=0x00000000 CR4=0x00000000 00072510971-i-@0010000c-[CPU0 ] 0x000000000010000c>> (invalid) : FFFF 00072510971-d-@0010000c-[CTRL ] searching for component 'cpu' in list 'bochs' 00072510971-d-@0010000c-[CTRL ] searching for component 'reset_on_triple_fault' in list 'cpu' 00072510971-p-@0010000c-[CPU0 ] >>PANIC<< exception(): 3rd (13) exception with no resolution
In Zeile 1 steht, das ein IO-Write an Port 20 durchgeführt wurde. Der Port 20 ist für den Interrupt-Controller zuständig. Warum da jetzt - obwohl doch erst die GDT aktiviert werden soll, bereits am PIC rum gepfriemelt wird, weiß ich nicht. Dein Code wirds dir aber mitteilen.
In Zeile 7 ist dann das Problem erkennbar: #UD ist Invalid-Opcode-Exception, also ein Assembler-Befehl, den es nicht gibt, oder ein gültiger Assembler-Befehl mit fehlerhaften Parametern. Es sieht nach einem MOV aus, der falsche Paramter hat. Ich bin allerdings kein Experte, was Assembler angeht.
Alle weiteren Exceptions sind Folgefehler. Bis hin zur Triple-Fault, die zum Reset der CPU führt.
Möglicherweise hilft dir aber schon der Hinweis, das ein outb an Port 20 gemacht wird, such ab dort nach dem Fehler.Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
06.05.12 17:28 #26
Mitglied Gold
- Registriert seit
- Feb 2011
- Beiträge
- 199
Erstmal danke für den Hinweis. Er hat mir aber insofern nicht weiter geholfen, als dass nirgends etwas mit Port 20 gemacht wird. Deshalb habe ich jetzt nur mal die kernel.o gelinkt und selbst das funktioniert nicht. Es muss wohl an der Datei oder am Linkerscript liegen. Ich poste hier mal beides:
Das wird so assmembliert:Code asm:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
[BITS 32] FLAGS equ 0 MAGIC equ 0x1BADB002 ; Magicnumber - Erkennungsmerkmal für GRUB CHECKSUM equ -(MAGIC + FLAGS) ; Checksum zeilen equ 10 align 4 MultiBootHeader: dd MAGIC ; Magic number dd FLAGS ; Flags dd CHECKSUM ; Checksum [GLOBAL] start start: ; [EXTERN main] ; call main [GLOBAL kernelerror] kernelerror: cli hlt
Und dann so gelinkt:Code :1
building\NASM\NASM.exe -f elf32 -o kernel\kernel.o kernel\kernel.asm
Linkerskript:Code :1
"building\GCC & LD\bin\i586-elf-ld.exe" -melf_i386 -T "building\GCC & LD\bin\link.ld" -o kernel\kernel.elf kernel\kernel.o
Ich hoffe, das hilft weiter.Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
ENTRY (start) OUTPUT_FORMAT(elf32-i386) OUTPUT_ARCH(i386:i386) SECTIONS { . = 0x00100000; kernel_start = .; .text : { *(.text) } .rodata : { *(.rodata) } .data : { *(.data) } .bss : { _sbss = .; *(COMMON) *(.bss) _ebss = .; } . = ALIGN(4096); kernel_end = .; }
-
06.05.12 19:35 #27
So, also ich bin jetzt einen Schritt weiter. Es liegt sehr wahrscheinlich an dem cli-Opcode, der aufgerufen wird. Und der Fehler tritt sehr wahrscheinlich auf, weil vorher kein sti gemacht wurde. cli stoppt die Ausführung von Interrupts, welche vorher mit sti natürlich gestartet werden müssen.
So bin ich vorgegangen:
- Im log zeigt der EIP (Instruction Pointer) auf 0x10000c
- Ich mach eine Disassemblierung der kernel.elf und schau mir an, was an dieser Stelle vorkommt:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
D:\Cpp\kernel\test1>i586-elf-objdump -d bin\kernel.elf bin\kernel.elf: file format elf32-i386 Disassembly of section .text: 00100000 <MultiBootHeader>: 100000: 02 b0 ad 1b 00 00 add 0x1bad(%eax),%dh 100006: 00 00 add %al,(%eax) 100008: fe 4f 52 decb 0x52(%edi) 10000b: e4 fa in $0xfa,%al 0010000c <kernelerror>: 10000c: fa cli 10000d: f4 hlt
Wie du siehst ist an Stelle 10000c das cli.
Ich weiß jetzt nicht, ob bei dir das gleiche rauskommen wird.Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
06.05.12 20:43 #28
Mitglied Gold
- Registriert seit
- Feb 2011
- Beiträge
- 199
Hm. Ich habe jetzt mal alles weggelassen, also:
Das ist alles, was von mir kommt, der Rest ist alles GRUB(4DOS). Ich bekomme trotzdem die selbe Fehlermeldung. Hier wieder der selbe Part in der bochsout.txtCode asm:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
[BITS 32] FLAGS equ 0 MAGIC equ 0x1BADB002 ; Magicnumber - Erkennungsmerkmal für GRUB CHECKSUM equ -(MAGIC + FLAGS) ; Checksum zeilen equ 10 align 4 MultiBootHeader: dd MAGIC ; Magic number dd FLAGS ; Flags dd CHECKSUM ; Checksum [GLOBAL] start start: ; [EXTERN main] ; call main ; [GLOBAL kernelerror] ; kernelerror: ; cli ; hlt
Es hat sich nichts geändert. Womit disassemblierst du denn? Ich disassembliere mit dem NASM Disassembler, bekomme aber dabei nur Adressen bis ca. 1230.Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
00072507868-d-@0000b383-[PIC ] IO write to 0020 = 20 00072507876-d-@0000d0e2-[CPU0 ] interrupt(): vector = 16, TYPE = 4, EXT = 0 00072508068-d-@0000c140-[CPU0 ] protected mode activated 00072508147-d-@0000c187-[CPU0 ] real mode activated 00072508160-d-@0000c862-[CPU0 ] interrupt(): vector = 15, TYPE = 4, EXT = 0 00072508250-d-@0000c140-[CPU0 ] protected mode activated 00072509900-d-@0010000e-[CPU0 ] BxError: Encountered an unknown instruction b1=0xff (signalling #UD) 00072509900-d-@0010000e-[CPU0 ] modrm was 0xff, nnn was 7, rm was 7 00072509900-i-@0010000e-[CPU0 ] 0x000000000010000c>> (invalid) : FFFF 00072509900-d-@0010000e-[CPU0 ] exception(0x06): error_code=0000 00072509900-d-@0010000c-[CPU0 ] interrupt(): vector = 06, TYPE = 3, EXT = 1 00072509900-e-@0010000c-[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x06) 00072509900-d-@0010000c-[CPU0 ] exception(0x0d): error_code=0032 00072509900-d-@0010000c-[CPU0 ] interrupt(): vector = 0d, TYPE = 3, EXT = 1 00072509900-e-@0010000c-[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x0d) 00072509900-d-@0010000c-[CPU0 ] exception(0x0d): error_code=006a 00072509900-d-@0010000c-[CPU0 ] exception(0x08): error_code=0000 00072509900-d-@0010000c-[CPU0 ] interrupt(): vector = 08, TYPE = 3, EXT = 1 00072509900-e-@0010000c-[CPU0 ] interrupt(): gate descriptor is not valid sys seg (vector=0x08) 00072509900-d-@0010000c-[CPU0 ] exception(0x0d): error_code=0042 00072509900-i-@0010000c-[CPU0 ] CPU is in protected mode (active) 00072509900-i-@0010000c-[CPU0 ] CS.mode = 32 bit 00072509900-i-@0010000c-[CPU0 ] SS.mode = 32 bit 00072509900-i-@0010000c-[CPU0 ] | EAX=2badb002 EBX=0000d48c ECX=ffffffff EDX=0000f000 00072509900-i-@0010000c-[CPU0 ] | ESP=00006c78 EBP=00006cdc ESI=021010c8 EDI=001010c8 00072509900-i-@0010000c-[CPU0 ] | IOPL=0 id vip vif ac vm RF nt of df if tf sf zf af pf CF 00072509900-i-@0010000c-[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D 00072509900-i-@0010000c-[CPU0 ] | CS:0028( 0005| 0| 0) 00000000 ffffffff 1 1 00072509900-i-@0010000c-[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 00072509900-i-@0010000c-[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 00072509900-i-@0010000c-[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 ffffffff 1 1 00072509900-i-@0010000c-[CPU0 ] | FS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 00072509900-i-@0010000c-[CPU0 ] | GS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 00072509900-i-@0010000c-[CPU0 ] | EIP=0010000c (0010000c) 00072509900-i-@0010000c-[CPU0 ] | CR0=0x00000011 CR2=0x00000000 00072509900-i-@0010000c-[CPU0 ] | CR3=0x00000000 CR4=0x00000000 00072509900-i-@0010000c-[CPU0 ] 0x000000000010000c>> (invalid) : FFFF 00072509900-d-@0010000c-[CTRL ] searching for component 'cpu' in list 'bochs' 00072509900-d-@0010000c-[CTRL ] searching for component 'reset_on_triple_fault' in list 'cpu' 00072509900-p-@0010000c-[CPU0 ] >>PANIC<< exception(): 3rd (13) exception with no resolution 00072509900-i-@0010000c-[CPU0 ] CPU is in protected mode (active) 00072509900-i-@0010000c-[CPU0 ] CS.mode = 32 bit 00072509900-i-@0010000c-[CPU0 ] SS.mode = 32 bit 00072509900-i-@0010000c-[CPU0 ] | EAX=2badb002 EBX=0000d48c ECX=ffffffff EDX=0000f000 00072509900-i-@0010000c-[CPU0 ] | ESP=00006c78 EBP=00006cdc ESI=021010c8 EDI=001010c8 00072509900-i-@0010000c-[CPU0 ] | IOPL=0 id vip vif ac vm RF nt of df if tf sf zf af pf CF 00072509900-i-@0010000c-[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D 00072509900-i-@0010000c-[CPU0 ] | CS:0028( 0005| 0| 0) 00000000 ffffffff 1 1 00072509900-i-@0010000c-[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 00072509900-i-@0010000c-[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 00072509900-i-@0010000c-[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 ffffffff 1 1 00072509900-i-@0010000c-[CPU0 ] | FS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 00072509900-i-@0010000c-[CPU0 ] | GS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 00072509900-i-@0010000c-[CPU0 ] | EIP=0010000c (0010000c) 00072509900-i-@0010000c-[CPU0 ] | CR0=0x00000011 CR2=0x00000000 00072509900-i-@0010000c-[CPU0 ] | CR3=0x00000000 CR4=0x00000000 00072509900-i-@0010000c-[CPU0 ] 0x000000000010000c>> (invalid) : FFFF 00072509900-d-@0010000c-[ACPI ] Exit 00072509900-d-@0010000c-[UNMP ] Exit 00072509900-d-@0010000c-[BIOS ] Exit 00072509900-d-@0010000c-[SPEAK] Exit 00072509900-d-@0010000c-[EFIRQ] Exit 00072509900-d-@0010000c-[GAME ] Exit 00072509900-d-@0010000c-[CTRL ] searching for component 'keyboard_mouse' in list 'bochs' 00072509900-d-@0010000c-[CTRL ] searching for component 'keyboard' in list 'keyboard_mouse' 00072509900-d-@0010000c-[CTRL ] searching for component 'paste_delay' in list 'keyboard' 00072509900-d-@0010000c-[KBD ] Exit 00072509900-d-@0010000c-[HD ] Exit 00072509900-d-@0010000c-[PIDE ] Exit 00072509900-d-@0010000c-[CTRL ] searching for component 'ports' in list 'bochs' 00072509900-d-@0010000c-[CTRL ] searching for component 'serial' in list 'ports' 00072509900-d-@0010000c-[CTRL ] searching for component '1' in list 'serial' 00072509900-d-@0010000c-[CTRL ] searching for component 'enabled' in list '1' 00072509900-d-@0010000c-[CTRL ] searching for component 'ports' in list 'bochs' 00072509900-d-@0010000c-[CTRL ] searching for component 'serial' in list 'ports' 00072509900-d-@0010000c-[CTRL ] searching for component '2' in list 'serial' 00072509900-d-@0010000c-[CTRL ] searching for component 'enabled' in list '2' 00072509900-d-@0010000c-[CTRL ] searching for component 'ports' in list 'bochs' 00072509900-d-@0010000c-[CTRL ] searching for component 'serial' in list 'ports' 00072509900-d-@0010000c-[CTRL ] searching for component '3' in list 'serial' 00072509900-d-@0010000c-[CTRL ] searching for component 'enabled' in list '3' 00072509900-d-@0010000c-[CTRL ] searching for component 'ports' in list 'bochs' 00072509900-d-@0010000c-[CTRL ] searching for component 'serial' in list 'ports' 00072509900-d-@0010000c-[CTRL ] searching for component '4' in list 'serial' 00072509900-d-@0010000c-[CTRL ] searching for component 'enabled' in list '4' 00072509900-d-@0010000c-[SER ] Exit 00072509900-d-@0010000c-[PAR ] Exit 00072509900-d-@0010000c-[CTRL ] searching for component 'clock_cmos' in list 'bochs' 00072509900-d-@0010000c-[CTRL ] searching for component 'cmosimage' in list 'clock_cmos' 00072509900-d-@0010000c-[CTRL ] searching for component 'enabled' in list 'cmosimage' 00072509900-i-@0010000c-[CMOS ] Last time is 1336329300 (Sun May 06 20:35:00 2012) 00072509900-d-@0010000c-[CMOS ] Exit 00072509900-d-@0010000c-[DMA ] Exit 00072509900-d-@0010000c-[PIC ] Exit 00072509900-d-@0010000c-[BXVGA] Exit 00072509900-d-@0010000c-[CTRL ] searching for component 'display' in list 'bochs' 00072509900-d-@0010000c-[CTRL ] searching for component 'vga_update_frequency' in list 'display' 00072509900-d-@0010000c-[BXVGA] Exit 00072509900-d-@0010000c-[FDD ] Exit 00072509900-d-@0010000c-[PCI ] i440fxConfAddr:0x80000058 00072509900-d-@0010000c-[PCI ] i440fxConfData:0x00001000 00072509900-d-@0010000c-[PCI ] i440fxArray59:0x10 00072509900-d-@0010000c-[PCI ] i440fxArray5a:0x00 00072509900-d-@0010000c-[PCI ] i440fxArray5b:0x00 00072509900-d-@0010000c-[PCI ] i440fxArray5c:0x00 00072509900-d-@0010000c-[PCI ] i440fxArray5d:0x00 00072509900-d-@0010000c-[PCI ] i440fxArray5e:0x00 00072509900-d-@0010000c-[PCI ] i440fxArray5f:0x00 00072509900-d-@0010000c-[PCI ] Exit 00072509900-d-@0010000c-[P2I ] Exit 00072509900-i-@0010000c-[ ] restoring default signal behavior 00072509900-i-@0010000c-[CTRL ] quit_sim called with exit code 1
-
06.05.12 20:46 #29
Steht in dem Teil wo disassembliert wird mit als Kommando drin:
Code :1
D:\Cpp\kernel\test1>i586-elf-objdump -d bin\kernel.elf
Da du ja auch den crosstools Gcc-Compiler verwendest, hast du mit Sicherheit auch die i586-elf-objdump.exe.
EDIT: NASM hilft hier nicht, weil NASM nur den Objekt-Code kennt. Nicht den eigentlichen ELF-Code, der durch den Linker erzeugt wird.Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
07.05.12 16:13 #30
Mitglied Gold
- Registriert seit
- Feb 2011
- Beiträge
- 199
Inzwischen glaube ich, dass es an GRUB liegt. Ich habe alles weggelassen, bis auf das, was GRUB braucht und ich bekomme dennoch den selben Fehler. Ich habe mal cli und hlt weggelassen, aber das ändert überhaupt nichts es ist trotzdem bei 10000c, wo objdump nichts mehr anzeigt.
Ähnliche Themen
-
Variable deklarieren
Von WorldRacer im Forum C/C++Antworten: 2Letzter Beitrag: 13.01.09, 18:24 -
Variablen in Var deklarieren
Von darkpriest im Forum Javascript & AjaxAntworten: 22Letzter Beitrag: 21.11.07, 11:49 -
ein String deklarieren
Von Reverent im Forum VisualStudio & MFCAntworten: 3Letzter Beitrag: 03.08.06, 19:51 -
Picture deklarieren
Von heldny im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 07.10.05, 18:35 -
css links deklarieren
Von bspainkf36 im Forum CSSAntworten: 9Letzter Beitrag: 13.12.02, 13:32


21Danke

Zitieren


Login
