kgdb调试 停下不动了

salvage
kgdb调试 停下不动了

我是按[url]http://space.doit.com.cn/45811/viewspace-2213.html[/url] 所说的做的
但是 有一个地方
我的grub和他配的不一样
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.15.5-kgdb)
root (hd0,0)
kernel /vmlinuz-2.6.15.5-kgdb ro root=/dev/VolGroup00/LogVol00 kgdb8250=0,115200 kgdbwait//他这里没有initrd
//我加上了 否则 我单步不久就会有double fault
title Fedora Core (2.6.15-1.2054_FC5)
root (hd0,0)
kernel /vmlinuz-2.6.15-1.2054_FC5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.15-1.2054_FC5.img

我的调试信息如下 到193行之后就停下了 我不明白为什么 现在想对.ko进行调试 但是不知该怎么做 大家帮帮我吧 谢谢!!!!!

91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
581                     if (preempt_count() != count) {
(gdb) n
585                     if (irqs_disabled()) {
(gdb) n
589                     if (msg) {
(gdb) n
569             for (call = __initcall_start; call < __initcall_end; call++) {
(gdb) n
572                     if (initcall_debug) {
(gdb) n
578                     (*call)();
(gdb) n
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
581                     if (preempt_count() != count) {
(gdb) n
585                     if (irqs_disabled()) {
(gdb) n
589                     if (msg) {
(gdb) n
569             for (call = __initcall_start; call < __initcall_end; call++) {
(gdb) n
572                     if (initcall_debug) {
(gdb) n
578                     (*call)();
(gdb) n
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
581                     if (preempt_count() != count) {
(gdb) n
585                     if (irqs_disabled()) {
(gdb) n
589                     if (msg) {
(gdb) n
569             for (call = __initcall_start; call < __initcall_end; call++) {
(gdb) n
572                     if (initcall_debug) {
(gdb) n
578                     (*call)();
(gdb) n
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
581                     if (preempt_count() != count) {
(gdb) n
585                     if (irqs_disabled()) {
(gdb) n
589                     if (msg) {
(gdb) n
569             for (call = __initcall_start; call < __initcall_end; call++) {
(gdb) n
572                     if (initcall_debug) {
(gdb) n
578                     (*call)();
(gdb) n
Using IPI No-Shortcut mode
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
581                     if (preempt_count() != count) {
(gdb) n
585                     if (irqs_disabled()) {
(gdb) n
589                     if (msg) {
(gdb) n
569             for (call = __initcall_start; call < __initcall_end; call++) {
(gdb) n
572                     if (initcall_debug) {
(gdb) n
578                     (*call)();
(gdb) n
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
581                     if (preempt_count() != count) {
(gdb) n
585                     if (irqs_disabled()) {
(gdb) n
589                     if (msg) {
(gdb) n
569             for (call = __initcall_start; call < __initcall_end; call++) {
(gdb) n
572                     if (initcall_debug) {
(gdb) n
578                     (*call)();
(gdb) n
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
581                     if (preempt_count() != count) {
(gdb) n
585                     if (irqs_disabled()) {
(gdb) n
589                     if (msg) {
(gdb) n
569             for (call = __initcall_start; call < __initcall_end; call++) {
(gdb) n
572                     if (initcall_debug) {
(gdb) n
578                     (*call)();
(gdb) n
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
581                     if (preempt_count() != count) {
(gdb) n
585                     if (irqs_disabled()) {
(gdb) n
589                     if (msg) {
(gdb) n
569             for (call = __initcall_start; call < __initcall_end; call++) {
(gdb) n
572                     if (initcall_debug) {
(gdb) n
578                     (*call)();
(gdb) n
ACPI wakeup devices:
USB
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
581                     if (preempt_count() != count) {
(gdb) n
585                     if (irqs_disabled()) {
(gdb) n
589                     if (msg) {
(gdb) n
569             for (call = __initcall_start; call < __initcall_end; call++) {
(gdb) n
572                     if (initcall_debug) {
(gdb) n
578                     (*call)();
(gdb) n
ACPI: (supports S0 S1 S4 S5)
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
581                     if (preempt_count() != count) {
(gdb) n
585                     if (irqs_disabled()) {
(gdb) n
589                     if (msg) {
(gdb) n
569             for (call = __initcall_start; call < __initcall_end; call++) {
(gdb) n
572                     if (initcall_debug) {
(gdb) n
578                     (*call)();
(gdb) n
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
581                     if (preempt_count() != count) {
(gdb) n
585                     if (irqs_disabled()) {
(gdb) n
589                     if (msg) {
(gdb) n
569             for (call = __initcall_start; call < __initcall_end; call++) {
(gdb) n
572                     if (initcall_debug) {
(gdb) n
578                     (*call)();
(gdb) n
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
581                     if (preempt_count() != count) {
(gdb) n
585                     if (irqs_disabled()) {
(gdb) n
589                     if (msg) {
(gdb) n
569             for (call = __initcall_start; call < __initcall_end; call++) {
(gdb) n
572                     if (initcall_debug) {
(gdb) n
578                     (*call)();
(gdb) n
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
581                     if (preempt_count() != count) {
(gdb) n
585                     if (irqs_disabled()) {
(gdb) n
589                     if (msg) {
(gdb) n
569             for (call = __initcall_start; call < __initcall_end; call++) {
(gdb) n
572                     if (initcall_debug) {
(gdb) n
578                     (*call)();
(gdb) n
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
581                     if (preempt_count() != count) {
(gdb) n
585                     if (irqs_disabled()) {
(gdb) n
589                     if (msg) {
(gdb) n
569             for (call = __initcall_start; call < __initcall_end; call++) {
(gdb) n
596             flush_scheduled_work();
(gdb) n
597     }
(gdb) n
do_basic_setup () at init/main.c:621
621     }
(gdb) n
init (unused=<value optimized out>) at init/main.c:700
700             if (!ramdisk_execute_command)
(gdb) n
701                     ramdisk_execute_command = "/init";
(gdb) n
703             if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
(gdb) n
704                     ramdisk_execute_command = NULL;
(gdb) n
705                     prepare_namespace();
(gdb) n

Breakpoint 2, unlock_kernel () at lib/kernel_lock.c:80
80      {
(gdb) n
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
10              return current_thread_info()->task;
(gdb) n
80      {
(gdb) n
83              BUG_ON(task->lock_depth < 0);
(gdb) n
85              if (likely(--task->lock_depth < 0))
(gdb) n
87      }
(gdb) n
do_open (bdev=0xc143c004, file=0xcff86078) at fs/block_dev.c:660
660     }
(gdb) n
blkdev_open (inode=<value optimized out>, filp=0xcff86078)
    at fs/block_dev.c:698
698             if (res)
(gdb) n
701             if (!(filp->f_flags & O_EXCL) )
(gdb) n
709     }
(gdb) n
__dentry_open (dentry=0xc1588e98, mnt=0xcfee1730, flags=<value optimized out>,
    f=0xcff86078, open=0xc01673c0 <blkdev_open>) at fs/open.c:773
773                     if (error)
(gdb) n
777             f->f_flags &= ~(O_CREAT | O_EXCL | O_NOCTTY | O_TRUNC);
(gdb) n
779             file_ra_state_init(&f->f_ra, f->f_mapping->host->i_mapping);
(gdb) n
782             if (f->f_flags & O_DIRECT) {
(gdb) n
805     }
(gdb) n
nameidata_to_filp (nd=<value optimized out>, flags=<value optimized out>)
    at fs/open.c:892
892     }
(gdb) n
filp_open (filename=<value optimized out>, flags=0, mode=<value optimized out>)
    at fs/open.c:835
835     }
(gdb) n
do_sys_open (filename=<value optimized out>, flags=0, mode=0) at fs/open.c:1026
1026                            if (IS_ERR(f)) {
(gdb) n
1030                                    fsnotify_open(f->f_dentry);
(gdb) n
125             struct inode *inode = dentry->d_inode;
(gdb) n
128             if (S_ISDIR(inode->i_mode))
(gdb) n
131             inotify_dentry_parent_queue_event(dentry, mask, 0, dentry->d_name.name);
(gdb) n
128             if (S_ISDIR(inode->i_mode))
(gdb) n
131             inotify_dentry_parent_queue_event(dentry, mask, 0, dentry->d_name.name);
(gdb) n
132             inotify_inode_queue_event(inode, mask, 0, NULL);
(gdb) n
1031                                    fd_install(fd, f);
(gdb) n
1034                    putname(tmp);
(gdb) n
1037    }
(gdb) n
sys_open (filename=0xc02fae87 "/dev/md0", flags=0, mode=0) at fs/open.c:1045
1045    }
(gdb) n
md_run_setup () at init/do_mounts_md.c:284
284                     if (fd >= 0) {
(gdb) n
283                     int fd = sys_open("/dev/md0", 0, 0);
(gdb) n
284                     if (fd >= 0) {
(gdb) n
285                             sys_ioctl(fd, RAID_AUTORUN, raid_autopart);
(gdb) n

Breakpoint 2, unlock_kernel () at lib/kernel_lock.c:80
80      {
(gdb) n
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
10              return current_thread_info()->task;
(gdb) n
80      {
(gdb) n
83              BUG_ON(task->lock_depth < 0);
(gdb) n
85              if (likely(--task->lock_depth < 0))
(gdb) n
87      }
(gdb) n
blkdev_ioctl (inode=0xc143c088, file=0xcff86078, cmd=2324, arg=0)
    at block/ioctl.c:253
253             if (ret != -ENOIOCTLCMD)
(gdb) n
256             return blkdev_driver_ioctl(inode, file, disk, cmd, arg);
(gdb) n
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.

Breakpoint 2, unlock_kernel () at lib/kernel_lock.c:80
80      {
(gdb) n
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
10              return current_thread_info()->task;
(gdb) n
80      {
(gdb) n
83              BUG_ON(task->lock_depth < 0);
(gdb) n
85              if (likely(--task->lock_depth < 0))
(gdb) n
87      }
(gdb) n
blkdev_driver_ioctl (inode=0xc143c088, file=0xcff86078, disk=0xc15f7058,
    cmd=2324, arg=0) at block/ioctl.c:210
210     }
(gdb) n
blkdev_ioctl (inode=0xc143c088, file=0xcff86078, cmd=2324, arg=0)
    at block/ioctl.c:257
257     }
(gdb) n
block_ioctl (file=<value optimized out>, cmd=<value optimized out>,
    arg=<value optimized out>) at fs/block_dev.c:783
783     }
(gdb) n
do_ioctl (filp=0xcff86078, cmd=2324, arg=0) at fs/ioctl.c:29
29                      if (error == -ENOIOCTLCMD)
(gdb) n
41      }
(gdb) n
vfs_ioctl (filp=0xcff86078, fd=0, cmd=0, arg=0) at fs/ioctl.c:157
157     }
(gdb) n
sys_ioctl (fd=0, cmd=2324, arg=0) at include/linux/file.h:52
52              if (unlikely(fput_needed))
(gdb) n
178     }
(gdb) n
md_run_setup () at init/do_mounts_md.c:286
286                             sys_close(fd);
(gdb) n

Breakpoint 2, unlock_kernel () at lib/kernel_lock.c:80
80      {
(gdb) n
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
10              return current_thread_info()->task;
(gdb) n
80      {
(gdb) n
83              BUG_ON(task->lock_depth < 0);
(gdb) n
85              if (likely(--task->lock_depth < 0))
(gdb) n
87      }
(gdb) n
blkdev_put (bdev=0xc143c004) at include/asm/semaphore.h:174
174             __asm__ __volatile__(
(gdb) n
750             bdput(bdev);
(gdb) n
752     }
(gdb) n
blkdev_close (inode=<value optimized out>, filp=<value optimized out>)
    at fs/block_dev.c:762
762     }
(gdb) n
__fput (file=0xcff86078) at include/linux/security.h:1652
1652            security_ops->file_free_security (file);
(gdb) n
148             if (unlikely(inode->i_cdev != NULL))
(gdb) n
150             fops_put(file->f_op);
(gdb) n
396             if (module) {
(gdb) n
151             if (file->f_mode & FMODE_WRITE)
(gdb) n
153             file_kill(file);
(gdb) n
65              call_rcu(&f->f_u.fu_rcuhead, file_free_rcu);
(gdb) n
154             file->f_dentry = NULL;
(gdb) n
155             file->f_vfsmnt = NULL;
(gdb) n
65              call_rcu(&f->f_u.fu_rcuhead, file_free_rcu);
(gdb) n
157             dput(dentry);
(gdb) n
62              if (mnt) {
(gdb) n
63                      mnt->mnt_expiry_mark = 0;
(gdb) n
64                      mntput_no_expire(mnt);
(gdb) n
159     }
(gdb) n
fput (file=0x0) at fs/file_table.c:122
122     }
(gdb) n
filp_close (filp=0xcff86078, id=0xcfed3cd4) at fs/open.c:1081
1081    }
(gdb) n
sys_close (fd=0) at fs/open.c:1112
1112    }
(gdb) n
md_run_setup () at init/do_mounts_md.c:289
289             md_setup_drive();
(gdb) n
290     }
(gdb) n
prepare_namespace () at init/do_mounts.c:406
406             if (saved_root_name[0]) {
(gdb) n
408                     ROOT_DEV = name_to_dev_t(root_device_name);
(gdb) n
407                     root_device_name = saved_root_name;
(gdb) n
408                     ROOT_DEV = name_to_dev_t(root_device_name);
(gdb) n

Breakpoint 2, unlock_kernel () at lib/kernel_lock.c:80
80      {
(gdb) n
91              __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1)));
(gdb) n
10              return current_thread_info()->task;
(gdb) n
80      {
(gdb) n
83              BUG_ON(task->lock_depth < 0);
(gdb) n
85              if (likely(--task->lock_depth < 0))
(gdb) n
87      }
(gdb) n
sys_mount (dev_name=0xc02fa5fe "sysfs", dir_name=0xc02fa5f9 "/sys",
    type=0xc02fa5fe "sysfs", flags=0, data=0x0) at fs/namespace.c:1436
1436            free_page(data_page);
(gdb) n
1439            free_page(dev_page);
(gdb) n
1441            putname(dir_page);
(gdb) n
1443            free_page(type_page);
(gdb) n
1445    }
(gdb) n
name_to_dev_t (name=0xc03da1e0 "/dev/VolGroup00/LogVol00")
    at include/asm/string.h:129
129     __asm__ __volatile__(
(gdb) n
150             if (strncmp(name, "/dev/", 5) != 0) {
(gdb) n
164             name += 5;
(gdb) n
107     __asm__ __volatile__(
(gdb) n
166             if (strcmp(name, "nfs") == 0)
(gdb) n
107     __asm__ __volatile__(
(gdb) n
169             if (strcmp(name, "ram") == 0)
(gdb) n
193     __asm__ __volatile__(
(gdb) n

salvage
好了
我每次碰到 _* 就跳出来

但是最后还是有错 Program received signal SIGTRAP  trace/breakpoint trap