Script started on Sat Mar 9 01:37:33 2002
[1;30m<[35m1[30m>([31mmirage[30m)[[34m/usr/src/gnu/hurd-20020103/oskit-mach/build[30m]
[32m#[0m i686-linux-gdb
GNU gdb 5.0
Copyright 2001 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "--host=hppa1.1-unknown-linux-gnu --target=i686-linux".
(gdb) file kernel-ide
Reading symbols from kernel-ide...done.
(gdb) target remote /dev/ttyS0
Remote debugging using /dev/ttyS0
0x0013d570 in main (argc=172448, argv=0x0) at ../oskit/x86/main.c:90
90 }
(gdb) l
85 machine_slot[mycpu].cpu_type = CPU_TYPE_PENTIUMPRO;
86 break;
87 }
88 machine_slot[mycpu].cpu_subtype = CPU_SUBTYPE_AT386;
89 machine_slot[mycpu].is_cpu = TRUE;
90 }
91
92 int
93 main (int argc, char **argv)
94 {
(gdb) s
main (argc=2, argv=0x1000000) at ../oskit/x86/main.c:95
95 oskit_clientos_init ();
(gdb) n
97 printf ("Welcome to %s!\r\n", version);
(gdb)
Welcome to GNUmach 1.2.91-OSKit!
102 picinit();
(gdb)
109 linear_base_va = -LINEAR_MIN_KERNEL_ADDRESS;
(gdb)
112 pmap_bootstrap();
(gdb)
123 kernel_page_dir[lin2pdenum(0)] =
(gdb)
125 paging_enable((oskit_addr_t) kernel_page_dir);
(gdb)
126 set_cr0 (get_cr0 () | CR0_WP);
(gdb)
128 if (base_cpuid.feature_flags & CPUF_PAGE_GLOBAL_EXT) {
(gdb)
136 set_cr4 (get_cr4 () | CR4_PGE);
(gdb)
142 base_gdt_init(); /* reinitialize with linear_base_va */
(gdb)
143 gdt_init();
(gdb)
144 idt_init();
(gdb) s
idt_init () at ../i386/i386/idt.c:33
33 gate_init(base_idt, idt_inittab, KERNEL_CS);
(gdb)
gate_init (dest=0x1bf820, src=0x1a0350, entry_cs=16) at ../../kern/x86/gate_init.c:23
23 {
(gdb)
25 while (src->entrypoint)
(gdb)
27 fill_gate(&dest[src->vector], src->entrypoint,
(gdb)
210 {
(gdb)
211 gate->offset_low = offset & 0xffff;
(gdb)
212 gate->selector = selector;
(gdb)
213 gate->word_count = word_count;
(gdb) display /i $pc
1: x/i $eip 0x157fe7 <gate_init+39>: movb $0x0,0x4(%eax)
(gdb) ni si
214 gate->access = access | ACC_P;
1: x/i $eip 0x157feb <gate_init+43>: or $0x80,%cl
(gdb)
0x00157fee 214 gate->access = access | ACC_P;
1: x/i $eip 0x157fee <gate_init+46>: mov %cl,0x5(%eax)
(gdb)
215 gate->offset_high = (offset >> 16) & 0xffff;
1: x/i $eip 0x157ff1 <gate_init+49>: shr $0x10,%edx
(gdb)
0x00157ff4 215 gate->offset_high = (offset >> 16) & 0xffff;
1: x/i $eip 0x157ff4 <gate_init+52>: mov %dx,0x6(%eax)
(gdb)
29 src++;
1: x/i $eip 0x157ff8 <gate_init+56>: add $0x8,%ebx
(gdb)
30 }
1: x/i $eip 0x157ffb <gate_init+59>: cmpl $0x0,(%ebx)
(gdb)
0x00157ffe 30 }
1: x/i $eip 0x157ffe <gate_init+62>: jne 0x157fd4 <gate_init+20>
(gdb)
27 fill_gate(&dest[src->vector], src->entrypoint,
1: x/i $eip 0x157fd4 <gate_init+20>: movzwl 0x4(%ebx),%eax
(gdb)
210 {
1: x/i $eip 0x157fd8 <gate_init+24>: lea (%edi,%eax,8),%eax
(gdb)
0x00157fdb 210 {
1: x/i $eip 0x157fdb <gate_init+27>: mov (%ebx),%edx
(gdb)
0x00157fdd 210 {
1: x/i $eip 0x157fdd <gate_init+29>: mov 0x6(%ebx),%cl
(gdb)
211 gate->offset_low = offset & 0xffff;
1: x/i $eip 0x157fe0 <gate_init+32>: mov %dx,(%eax)
(gdb) bt full
#0 gate_init (dest=0x1bf820, src=0x1a0350, entry_cs=16) at ../../oskit/x86/seg.h:211
dest = (struct x86_gate *) 0x1bf820
src = (struct gate_init_entry *) 0x1a0358
entry_cs = 16
#1 0x00151dae in idt_init () at ../i386/i386/idt.c:33
No locals.
#2 0x0013d5fe in main (argc=2, argv=0x1000000) at ../oskit/x86/main.c:144
No locals.
#3 0x001577d2 in multiboot_main (boot_info_pa=172448) at ../../kern/x86/pc/base_multiboot_main.c:96
argc = 2
argv = (char **) 0x1000000
i = 1
(gdb) info reg
eax 0x1bf828 1833000
ecx 0xc00f 49167
edx 0x156094 1400980
ebx 0x1a0358 1704792
esp 0x1b5f5c 0x1b5f5c
ebp 0x1b5f68 0x1b5f68
esi 0x10 16
edi 0x1bf820 1832992
eip 0x157fe0 0x157fe0
eflags 0x10102 65794
cs 0x11 17
ss 0x19 25
ds 0x1b0018 1769496
es 0x150018 1376280
fs 0x150000 1376256
gs 0x1b0000 1769472
fctrl 0x0 0
fstat 0x0 0
ftag 0x0 0
fiseg 0x0 0
fioff 0x0 0
foseg 0x0 0
fooff 0x0 0
fop 0x0 0
xmm0 0x00000000000000000000000000000000
xmm1 0x00000000000000000000000000000000
xmm2 0x00000000000000000000000000000000
xmm3 0x00000000000000000000000000000000
xmm4 0x00000000000000000000000000000000
xmm5 0x00000000000000000000000000000000
xmm6 0x00000000000000000000000000000000
xmm7 0x00000000000000000000000000000000
mxcsr 0x0 0
(gdb) / x/40i
0x157fe3 <gate_init+35>: mov %si,0x2(%eax)
0x157fe7 <gate_init+39>: movb $0x0,0x4(%eax)
0x157feb <gate_init+43>: or $0x80,%cl
0x157fee <gate_init+46>: mov %cl,0x5(%eax)
0x157ff1 <gate_init+49>: shr $0x10,%edx
0x157ff4 <gate_init+52>: mov %dx,0x6(%eax)
0x157ff8 <gate_init+56>: add $0x8,%ebx
0x157ffb <gate_init+59>: cmpl $0x0,(%ebx)
0x157ffe <gate_init+62>: jne 0x157fd4 <gate_init+20>
0x158000 <gate_init+64>: pop %ebx
0x158001 <gate_init+65>: pop %esi
0x158002 <gate_init+66>: pop %edi
0x158003 <gate_init+67>: leave
0x158004 <gate_init+68>: ret
0x158005 <Letext>: lea 0x0(%esi,1),%esi
0x158009 <Letext+4>: lea 0x0(%edi,1),%edi
0x158010 <query>: push %ebp
0x158011 <query+1>: mov %esp,%ebp
0x158013 <query+3>: push %edi
0x158014 <query+4>: push %esi
0x158015 <query+5>: push %ebx
0x158016 <query+6>: mov 0x8(%ebp),%edx
0x158019 <query+9>: mov 0xc(%ebp),%eax
0x15801c <query+12>: mov 0x10(%ebp),%ebx
0x15801f <query+15>: mov %eax,%esi
0x158021 <query+17>: mov $0x1906a0,%edi
0x158026 <query+22>: mov $0x10,%ecx
0x15802b <query+27>: cld
0x15802c <query+28>: test $0x0,%al
0x15802e <query+30>: repz cmpsb %es:(%edi),%ds:(%esi)
0x158030 <query+32>: je 0x158045 <query+53>
0x158032 <query+34>: mov %eax,%esi
0x158034 <query+36>: mov $0x190720,%edi
0x158039 <query+41>: mov $0x10,%ecx
0x15803e <query+46>: cld
0x15803f <query+47>: test $0x0,%al
0x158041 <query+49>: repz cmpsb %es:(%edi),%ds:(%esi)
0x158043 <query+51>: jne 0x158050 <query+64>
0x158045 <query+53>: incl 0x4(%edx)
0x158048 <query+56>: mov %edx,(%ebx)
(gdb) l
206 /* Fill a gate with particular values. */
207 OSKIT_INLINE void
208 fill_gate(struct x86_gate *gate, unsigned offset, unsigned short selector,
209 unsigned char access, unsigned char word_count)
210 {
211 gate->offset_low = offset & 0xffff;
212 gate->selector = selector;
213 gate->word_count = word_count;
214 gate->access = access | ACC_P;
215 gate->offset_high = (offset >> 16) & 0xffff;
(gdb) si
Interrupted while waiting for the program.
Give up (and stop debugging it)? (y or n) y
(gdb) quit
[1;30m<[35m2[30m>([31mmirage[30m)[[34m/usr/src/gnu/hurd-20020103/oskit-mach/build[30m]
[32m#[0m [K
Script done on Sat Mar 9 01:41:14 2002