I try to trace some system call using remote debugging and find something
that I can not explain myself (the related source is ffs_write()):
case 1:
-------
443 if (object)
(gdb) break 430
Breakpoint 6 at 0xc0289cea: file ../../ufs/ufs/ufs_readwrite.c, line 430.
(gdb) c
Continuing.
Breakpoint 6, ffs_write (ap=0xc64f5e70) at
../../ufs/ufs/ufs_readwrite.c:438
438 p = uio->uio_procp;
In the above case, even if I set breakpoint 6 at line 430, it insists on
line 438.
case 2:
-------
(gdb) print p->p_limit
$1 = (struct plimit *) 0xffffffff
In the above case, the statement has just used p->p_limit to do some
comparison and yet gdb says its value is -1. The statement using it is:
if (vp->v_type == VREG && p &&
uio->uio_offset + uio->uio_resid >
p->p_rlimit[RLIMIT_FSIZE].rlim_cur) {
Are these bugs of gdb or am I doing something wrong? I notice that
4.1-release install KLD files at the same time you install kernel. In the
past, I only copy the file kernel.debug to the target machine. Do I have
to copy those .ko files to the target machine as well?
Any help is appreciated.
-Zhihui
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message