Not login
1

[176]  如何调试Linux内核模块(驱动)

asked 2020-07-11 10:33:01 +0800

gdman gravatar image

updated 2020-07-15 18:11:07 +0800

NCADMIN gravatar image

如何调试Linux系统中的内核驱动,或者LKM?

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
0

answered 2020-07-11 10:52:55 +0800

gdman gravatar image

updated 2020-07-15 18:11:18 +0800

NCADMIN gravatar image

一直想写一下这个步骤,但是耽误了,抱歉。先以调试i915.ko列出关键步骤吧
1)准备工作
把GDK7中的i915.ko复制到主机的c:\temp目录 可以用如下命令来搜索i915.ko cd / sudo find -name i915.ko 2)连接GDK7,开机进入Ubuntu 3)在主机上打开Nano Code,开始内核调试,选择DCI Open,选中Linux和Memory Shadow 4)待工具条上的Break按钮变亮后,点它,把GDK7中断下来 5)在Nano Debugger中执行如下命令 .sympath+ c:\temp .reload x i915!render bm i915!render 6)以上命令,有些可能需要执行一会,请喝一杯茶或者想想开心的事情,耐心等待 7)执行bl,确认设置了一些断点 8)输入g命令恢复目标执行,断点应该很快命中 如果断点成功命中,可以尝试k命令观察函数调用过程,如果你成功看到了类似下面这样的调用过程,那么恭喜你,你成为这个世界上为数很少的成功把i915驱动中断下来的高手之一! Child-SP RetAddr Call Site ffffb75b4221fa48 ffffffffc074250e i915!gen8emitflushrender ffffb75b4221faa8 ffffffffc0743283 i915!i915gemdoexecbuffer+0x71e ffffb75b4221fc98 00000000000003f0 i915!i915gemexecbuffer2_ioctl+0x1f3

edit flag offensive delete link more

Comments

source code 没法对应上,手动打开都对不上。 .srcpath+ 试过了;是不是要加上类似isd里路径map的功能?

xyl gravatar image xyl  ( 2020-07-15 22:39:36 +0800 ) edit

使用readelf确认一下,是不是符号文件里没有行信息

gdman gravatar image gdman  ( 2021-05-08 14:29:14 +0800 ) edit
Login/Signup to Answer

Question Tools

1 follower

Stats

Asked: 2020-07-11 10:33:01 +0800

Seen: 50 times

Last updated: Jul 15 '20

关闭