This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [uml-user] problems debugging an uml skas kernel with gdb


On Wednesday 08 June 2005 14:34, marco ghidinelli wrote:
> hello,
>
> i've problems debugging a UML SKAS kernel.
> the host is an x86 kernel 2.6.12-rc4-skas3-v9-pre4
> the guest is a kernel 2.6.12-rc4.
>
> GNU gdb 6.3.50.20050606-cvs,
> gcc version 3.3.5 (Debian 1:3.3.5-8ubuntu2)
>
> the problems are:
>
> 1) a pointer to a struct was not seen by the debugger:
>
> example session:
>
> Breakpoint 4, yoghi_init (sch=0x9d1b830, opt=0x9d1b400)
>     at net/sched/sch_yoghi.c:235
> 235             printk(KERN_DEBUG "Yoghi 0.0.3 Initiaziled\n");
> (gdb) n
> Yoghi 0.0.3 Initiaziled
> 236             if(q != NULL)
> (gdb) n
> 237                     printk(KERN_DEBUG "yoghi_init: q =
> 0x%x\n",(u32)q);
> (gdb) n
> yoghi_init: q = 0x9d1b480
> 238             return 0;
> (gdb) p q
> No symbol "q" in current context.
>
> this is quite annoying but i can get my info in another way:
> (gdb) p (struct yoghi_sched_data)*0x9d1b480
Probably the variable was optimized out by the compiler...
> 2) sometimes the debugger get lost:
>
> Breakpoint 3, yoghi_bind (sch=0xa8bcf20, parent=0, classid=176934688)
>     at net/sched/sch_yoghi.c:271
> 271             return yoghi_get(sch, classid);
> (gdb) s
> yoghi_get (sch=0x10003, classid=65539) at net/sched/sch_yoghi.c:257
>
> note that sch was changed!!
>
> and sometimes it get completly lost:
>
> Breakpoint 1, yoghi_get (sch=0x10013, classid=65555)
>     at net/sched/sch_yoghi.c:259
> 259             u32 band  = TC_H_MIN(classid);
> (gdb) n
> 261             printk(KERN_DEBUG "yoghi_get: classid = %d ; band = %d ;
> band2 = %d\n",classid,band,band2);
> (gdb) p band
> $8 = 19
> (gdb) n
> yoghi_get: classid = 65555 ; band = 19 ; band2 = 19
> 262             if (band -1 > q->bands)
> (gdb) n
> 263                     return 0; /* means not found */
> (gdb) n
> 265     }
> (gdb) n
> 0x0a8846d2 in ?? ()
> (gdb) bt
> #0  0x0a8846d2 in ?? ()
> #1  0x09d1b000 in ?? ()
> #2  0x00010013 in ?? ()
> #3  0x00010013 in ?? ()
> #4  0x00000000 in ?? ()
>
> bye!
Sadly gdb is not very reliable, and I can confirm all this is normal... you 
could try compiling the kernel (or at least the modules of your interest, but 
you'd better patch the Makefiles) with -O1 instead of -O2...

-- 
Inform me of my mistakes, so I can keep imitating Homer Simpson's "Doh!".
Paolo Giarrusso, aka Blaisorblade (Skype ID "PaoloGiarrusso", ICQ 215621894)
http://www.user-mode-linux.org/~blaisorblade

	

	
		
___________________________________ 
Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB 
http://mail.yahoo.it


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]