[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

oskit-mach debugging log



Hi. I recompiled everything and was able to boot the oskit
test kernels. Oskit-mach compiled as normal, I had to disable
unix, examples/unix etc in modules.x86.pc

It is exhibiting the same behavior as last week, and I
have captured the debugging script. Here it is.

Later,
- Doug

< snip >
Script started on Sat Mar  9 01:37:33 2002
<1>(mirage)[/usr/src/gnu/hurd-20020103/oskit-mach/build]
# 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
<2>(mirage)[/usr/src/gnu/hurd-20020103/oskit-mach/build]
# 
Script done on Sat Mar  9 01:41:14 2002

Reply to: