linux下加载驱动出错,请帮忙

发布于 2022-09-18 17:55:29 字数 3009 浏览 14 评论 0

PowerPC 环境下,linux  内核 2.4.26 ,  测试自已写的驱动时(驱动采用-static 编译),出现下列错误:

Oops: kernel access of bad area, sig: 11
NIP: C004B034 XER: 20000000 LR: C0005A3C SP: C09D9F20 REGS: c09d9e70 TRAP: 0300
   Not tainted
MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: 00000004, DSISR: 20000000
TASK = c09d8000[27] 'sh' Last syscall: 63
last math c09d8000 last altivec 00000000
GPR00: C0005A3C C09D9F20 C09D8000 0000000A 00000001 00000000 00000000 FEFEFEFF
GPR08: 7F7F7F7F C09D9F50 C004B014 200004E4 840004E4 100B20A0 00000000 00000000
GPR16: 00000000 00000000 00000000 00000000 00009032 009D9F40 00000000 C0005C88
GPR24: C00059E0 00000001 100AFBB8 0000000A 00000000 00000000 00000001 FFFFFFF7
Call backtrace:
00000001 C0005A3C 1004DEFC 1004D1E0 1001FAFC 100248E0 10023BD4
100201AC 1001FA58 10013B8C 10011044 0FEDAF70 00000000
Oops: kernel access of bad area, sig: 11
NIP: C00191A4 XER: 20000000 LR: C0019178 SP: C09D9D40 REGS: c09d9c90 TRAP: 0300
   Not tainted
MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: 000021E0, DSISR: 20000000
TASK = c09d8000[27] 'sh' Last syscall: 63
last math c09d8000 last altivec 00000000
GPR00: 00000000 C09D9D40 C09D8000 00000000 C0400000 00000066 C09D5000 C01C2D04
GPR08: C02CB440 C01603F0 00000000 00000001 00000000 100B20A0 00000000 00000000
GPR16: 00000000 00000000 00000000 00000000 00009032 009D9E60 00000000 C0005C88
GPR24: 00000000 C0180000 C0140000 C0140000 0000000B C09D8000 C013E780 000021E0
Call backtrace:
C0019178 C0005E14 C000FAD4 C000F8C4 C0005C88 00000001 C0005A3C
Inconsistency detected by ld.so: dynamic-link.h: 62: elf_get_dynamic_info: Asser
tion `! "bad dynamic tag"' failed!
Inconsistency detected by ld.so: dynamic-link.h: 62: elf_get_dynamic_info: Asser
tion `! "bad dynamic tag"' failed!
Inconsistency detected by ld.so: dynamic-link.h: 62: elf_get_dynamic_info: Asser
tion `! "bad dynamic tag"' failed!
Inconsistency detected by ld.so: dynamic-link.h: 62: elf_get_dynamic_info: Asser
tion `! "bad dynamic tag"' failed!
Inconsistency detected by ld.so: dynamic-link.h: 62: elf_get_dynamic_info: Asser
tion `! "bad dynamic tag"' failed!
init: /bin/sh respawning too fast
Inconsistency detected by ld.so: dynamic-link.h: 62: elf_get_dynamic_info: Asser
tion `! "bad dynamic tag"' failed!
init: /bin/sh respawning too fast

是什么原因引起上述错误呢?  请高手分析一下原因,谢谢!

[ 本帖最后由 nflx 于 2009-5-8 11:19 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

这样的小城市 2022-09-25 17:55:30

替LZ问一下, 指针异常, 这是怎么看出来的?

星軌x 2022-09-25 17:55:30

不太可能是非法指针操作! 代码有点复杂

[ 本帖最后由 nflx 于 2009-5-9 22:24 编辑 ]

ま柒月 2022-09-25 17:55:30

coredump100%是指针问题,否则不会coredump的。
不过没有2.6好,2.4的自己计算哪个指针错误,2.6有符号信息

蓝礼 2022-09-25 17:55:30

内核版的a版主有一篇文章提到可以通过coredump信息定位具体出错代码行的,你可以搜搜看
话说Linux的驱动调试真JB麻烦,发现vxworks驱动的人真是幸福

‘画卷フ 2022-09-25 17:55:30

vxworks驱动调试很简单吗?一直都是用logMsg...

风筝有风,海豚有海 2022-09-25 17:55:30

原帖由 想飞的蜗牛 于 2009-5-10 21:40 发表
vxworks驱动调试很简单吗?一直都是用logMsg...

Tornado不是一个源码级的调试器吗?而且其IDE非常好用
其实我也只是毕业时碰过,后来再没接触过了

撩起发的微风 2022-09-25 17:55:30

我遇到过很相似的问题,当时也就把驱动里面的全局变量全部去掉,并封装为函数的局部变量(尤其是全局指针),就解决了,LZ可以试试,不过我是用的2.6的linux

云朵有点甜 2022-09-25 17:55:29

kernel panic多半是因为非法指针的操作,贴代码上来

心舞飞扬 2022-09-25 17:55:29

明显是指针操作异常,查查指针是否指向了未做映射的区域或空指针等

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文