jydg 发表于 2019-2-18 10:45:08

ubuntu18.04下双机驱动调试

  环境搭建:
http://blog.运维网.com/haidragon/2337256
这里要先说下如果要下内核断点要先在编译前去掉写保护,但是下自己写的驱动可以不要。
第二个最好编译完后压缩vm系统文件然后复制一份,这样就调试机与被调试机环境一模一样,同样编译生成的符号也有。
我这里是复制的也就是俩个系统一模一样的,只是一个是做客服端,一个是服务端。
开始第一个驱动编写:
http://blog.运维网.com/haidragon/2164619
编译完成后调试机与被调试机各一份最好在一个目录下面。同时最好目录里面东西都是各一份。
https://s1.运维网.com/images/blog/201901/05/7f7ed7a1d67b0c2580aa345d18488024.png
然后被调试机安装驱动
https://s1.运维网.com/images/blog/201901/05/e012b7a62b3f272759ad3835d3a16fac.png
找到模块在内核中的偏移地址复制下来 等下用到
输入cat /sys/module/test/sections/.text    中间test为模块名称
https://s1.运维网.com/images/blog/201901/05/9de0bdb14c42ebd01486e06435906506.png
然后主动断下
输入echo g>/proc/sysrq-trigger被调试机卡住
https://s1.运维网.com/images/blog/201901/05/122bc518d807652d10d516b63930d667.png
调试机就会收到 等待输入命令
https://s1.运维网.com/images/blog/201901/05/abe69f32fbd6828b78f493e070a18abc.png
这里就是在调试机上操作了
安装要调试的模块
add-symbol-file文件模块偏移
add-symbol-file ../test/test.ko0xffffffffc049a00
https://s1.运维网.com/images/blog/201901/05/28a0048e40bddc0e9e048ae1470e7b30.png
然后就可以开始下函数断点调试了。这里就下卸载函数断点
输入 b hello_exit
https://s1.运维网.com/images/blog/201901/05/70aff2f8c43a9186590b27f1211abe0e.png
让系统继续执行
输入 c
https://s1.运维网.com/images/blog/201901/05/e0de87042989693c8a7e076687b548ea.png
然后去被调试机上卸载驱动
https://s1.运维网.com/images/blog/201901/05/652c18481cd4125e57d568e6ffa44435.png
调试机上又收到了 等待输入 可以输入l命令看下源码这里没有什么功能就直接放行,让系统继续卸载。
https://s1.运维网.com/images/blog/201901/05/c4647fa1f926890e556b3a290b9969ca.png



页: [1]
查看完整版本: ubuntu18.04下双机驱动调试