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