免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 11110 | 回复: 30
打印 上一主题 下一主题

关于使用kgdb调试kernel2.6.26的几个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-17 18:22 |只看该作者 |倒序浏览
大家好,首次发帖。希望能够得到大家的帮助。
最近在尝试在x86平台上用kgdb调试kernel,2.6.26已经自带kgdb,我已经编译成功安装。host也能够连接上target,但是gdb总是不能在设置的断点处正确停止。
先简单说一下我之前的配置过程。
在编译kernel时,我选择了以下几项:
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_INFO=y
禁用CONFIG_DEBUG_RODATA

在target的grub中加入“kgdboc=ttyS0,115200 kgdbwait”
target起机后停止在 Waiting for connection from remote gdb...,

在host 运行 gdb vmlinuz
(gdb) set remotebaud 115200
(gdb) target remote /dev/ttyS0
Remote debugging using /dev/ttyS0
warning: shared library handler failed to enable breakpoint
0xc045ed4e in ?? ()
(gdb) n
Cannot find bounds of current function
(gdb) bt
#0  0xc045ed4e in ?? ()
#1  0xcf02bf4c in ?? ()
#2  0xc0460244 in ?? ()
#3  0xc0732f28 in ?? ()
#4  0xc0746897 in ?? ()
#5  0x00000000 in ?? ()
(gdb) b storage_probe
Breakpoint 1 at 0xc11bf3ea: file drivers/usb/storage/usb.c, line 964.
(gdb) c

但是当我插上U盘时没有进入断点(注:我已经将关于usb storage的几个模块都built in了,插上u盘肯定要调用storage_probe)。希望大家能给我点意见。

我发现我和网上正常的应用有一处很不一样。网上有位成功应用kgdb的兄弟在host连上target后得到的下面的信息:
<root#> gdb ./vmlinux            //含调试信息的未压缩内核
(gdb) set remotebaud 38400
(gdb) target remote /dev/ttyS0
Remote debugging using /dev/ttyS0
breakpoint () at kernel/kgdb.c:1212(源代码中所在行号)
1212:atomic_set(&kgdb_setting_breakpoint, 0);
warning: shared library handler failed to enable breakpoint
(gdb)

host首次拿到控制权的时候停止的地方和我不同。

尝试了一天没成果,希望大家帮忙分析一下。多谢

[ 本帖最后由 EurekaSea 于 2008-11-18 15:51 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-11-17 21:44 |只看该作者

回复 #1 EurekaSea 的帖子

详细的debug信息有么

论坛徽章:
0
3 [报告]
发表于 2008-11-17 23:51 |只看该作者
我最近也一直再弄kgdb,我是在两台vmware之间调试的。我的虚拟机有问题编译的内核倒挂在文件系统时当掉了,但是之前的步骤是可以调试的。

首先你能确定两台机子之间的串口可以正常通信了吗?
我是用minicom测试了一下,两台机子可以相互通信。

论坛徽章:
0
4 [报告]
发表于 2008-11-18 09:33 |只看该作者
原帖由 kns1024wh 于 2008-11-17 21:44 发表
详细的debug信息有么



多谢回复,不知详细的信息需要哪些?

论坛徽章:
0
5 [报告]
发表于 2008-11-18 09:37 |只看该作者
原帖由 emmoblin 于 2008-11-17 23:51 发表
我最近也一直再弄kgdb,我是在两台vmware之间调试的。我的虚拟机有问题编译的内核倒挂在文件系统时当掉了,但是之前的步骤是可以调试的。

首先你能确定两台机子之间的串口可以正常通信了吗?
我是用minicom ...


多谢回复
我的串口确定可以正常通信了。
target机 停止在 Waiting for connection from remote gdb...,
我在host机输入(gdb) c后,target机就能正常启动了,我现在郁闷的是没有捕捉到我设定的断点:(
今天打算再重新编译一个
请问你编译的是那版的kernel?

论坛徽章:
0
6 [报告]
发表于 2008-11-18 17:35 |只看该作者

我的问题跟你一样,比你更糟糕!

[root@CoolB3 linux-2.6.27.6]# gdb vmlinux

GNU gdb Red Hat Linux (5.3post-0.20021129.18rh)
Copyright 2003 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 "i386-redhat-linux-gnu"...

(gdb)
(gdb)
(gdb) set remotebaud 115200
(gdb) target remote /dev/ttyS0
Remote debugging using /dev/ttyS0
0xc024a423 in ?? ()
warning: shared library handler failed to enable breakpoint
(gdb) bt
#0  0xc024a423 in ?? ()
#1  0xc024a461 in ?? ()
#2  0xc024aba8 in ?? ()
#3  0xc034613d in ?? ()
#4  0xc0634353 in ?? ()
#5  0xc020102a in ?? ()
#6  0xc061891d in ?? ()
(gdb) b storage_probe
Function "storage_probe" not defined.
(gdb) n
Cannot find bounds of current function

我是用的2.6.27.6内核,很奇怪.没有函数名字,而且不能设置断点...郁闷啊,找了篇文章好象是说我KGDB版本太旧,我是用红帽子9.0自带的,我升级到最新6.4好象也一样
不过可以设置断点了.

[ 本帖最后由 Aqie 于 2008-11-18 18:17 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2008-11-19 12:02 |只看该作者
我用的是kgdb官方网站上推荐的,2.6.15内核。
然后打得补丁,是可以调试的。

2.6.26以上的内核应该不在需要打补丁了。
我现在正在试 2.6.27.6版本在ubuntu 8.10上。

希望把最新进展大家贴贴。

论坛徽章:
0
8 [报告]
发表于 2008-11-19 16:49 |只看该作者
我的可以调试了,可以单步了。我一会设置个断点试试

论坛徽章:
0
9 [报告]
发表于 2008-11-19 18:03 |只看该作者
原帖由 emmoblin 于 2008-11-19 16:49 发表
我的可以调试了,可以单步了。我一会设置个断点试试

223345


这么神奇?,我非常怀疑是.config那个地方没配置对,能把你的2.6.27.6 .config传一个上来不.最好操作步骤也来个..先谢了.在线等回复

[ 本帖最后由 Aqie 于 2008-11-19 18:05 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2008-11-19 18:29 |只看该作者
对了,你在编译2.6.27.6内核的时候有没有改Makefile 文件,我把KBUILD_CFLAGS   += -Os 改成 KBUILD_CFLAGS   += -O了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP