Skip to content

实践第3章6节出现的错误 #21

Open
@GoogleCodeExporter

Description

@GoogleCodeExporter
博主,您好:
实践本书第3章6节(后面几节都出现这样问题)发现核心堆栈
错误,经过定位发现是
在这个地方出错,比如以7节例子中:
LABEL_SEG_CODE32:
    ... ...
    push    $(ARDSTitle)           /* Display addr range descriptor struct
title */
    call    DispStr
    add     $4, %esp
    call    DispAddrMap            /* Display system address map */

    call    SetupPaging            /* Setup and enable paging */

    push    $(PMMessage)
    call    DispStr
    add     $4, %esp
    ... ...
把上面的代码屏蔽掉则不会出现问题。
我使用的编译系统环境是:redhat AS 4.6,内置gcc 
3.4.6,实践的BOCHS版本为2.3。

在WIN2003下使用BOCHSGDB.EXE调试,出现下面这种情况:
00000000000i[APIC?] local apic in  initializing
========================================================================
                        Bochs x86 Emulator 2.3
              Build from CVS snapshot on August 27, 2006
========================================================================
00000000000i[     ] reading configuration from bochsrc.bxrc
00000000000i[     ] WARNING: syntax has changed, please use 'vgaromimage:
file=...' now
00000000000i[     ] installing win32 module as the Bochs GUI
00000000000i[     ] using log file bochsout.txt
Next at t=0
(0) [0xfffffff0] f000:fff0 (unk. ctxt): jmp far f000:e05b         ; ea5be000f0
<bochs:1> vb 0x0008:0x00000000
<bochs:2> c
(7563480) Breakpoint 0, in 0008:00000000 (0x00090922)
Next at t=8830245
(0) [0x00090922] 0008:00000000 (unk. ctxt): mov ax, 0x0010            ;
66b81000
<bochs:3> u /12
00090922: (                    ): mov ax, 0x0010            ; 66b81000
00090926: (                    ): mov ds, ax                ; 8ed8
00090928: (                    ): mov ax, 0x0010            ; 66b81000
0009092c: (                    ): mov es, ax                ; 8ec0
0009092e: (                    ): mov ax, 0x0018            ; 66b81800
00090932: (                    ): mov ss, ax                ; 8ed0
00090934: (                    ): mov ax, 0x0020            ; 66b82000
00090938: (                    ): mov gs, ax                ; 8ee8
0009093a: (                    ): mov esp, 0x00000200       ; bc00020000
0009093f: (                    ): push 0x00000043           ; 6a43
00090941: (                    ): call .+0x000002ae         ; e8ae020000
00090946: (                    ): add esp, 0x00000004       ; 83c404
<bochs:4> pb 0x00090941
<bochs:5> c
(0) Breakpoint 2, 0x00090941 in ?? ()
Next at t=8830255
(0) [0x00090941] 0008:0000001f (unk. ctxt): call .+0x000002ae (0x00090bf4)
; e8ae020000
<bochs:6> s
Next at t=8830255
(0) [0x00090941] 0008:001f (unk. ctxt): call .+0x000002ae (0xffff02d2) ;
e8ae020000
<bochs:7> s
Next at t=8830256
(0) [0x000fe05b] f000:e05b (unk. ctxt): xor ax, ax                ; 31c0
<bochs:8> u /16
000fe05b: (                    ): xor ax, ax                ; 31c0
000fe05d: (                    ): out 0x0d, al              ; e60d
000fe05f: (                    ): out 0xda, al              ; e6da
000fe061: (                    ): mov al, 0xc0              ; b0c0
000fe063: (                    ): out 0xd6, al              ; e6d6
000fe065: (                    ): mov al, 0x00              ; b000
000fe067: (                    ): out 0xd4, al              ; e6d4
000fe069: (                    ): mov al, 0x0f              ; b00f
000fe06b: (                    ): out 0x70, al              ; e670
000fe06d: (                    ): in al, 0x71               ; e471
000fe06f: (                    ): mov bl, al                ; 88c3
000fe071: (                    ): mov al, 0x0f              ; b00f
000fe073: (                    ): out 0x70, al              ; e670
000fe075: (                    ): mov al, 0x00              ; b000
000fe077: (                    ): out 0x71, al              ; e671
000fe079: (                    ): mov al, bl                ; 88d8
<bochs:9>
因为最近在学习这些东西,很多不太明白,请博主及明白原��
�的同学告知。

Original issue reported on code.google.com by roaph...@gmail.com on 1 Jun 2009 at 6:06

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions