在这里提供一个原始的shell:
#!/bin/bash
nm module_name.ko | c++filt | grep -w -i T | awk '{print $3}' | sed 's/,/\\|/g'|sort|uniq|grep ^function.* |awk '{print "b " $1}' >/tmp/__make_break_point__
解释:
这里有两步是按照自己需求修改
module_name.ko:这是需要下断点的模块,这里也可以换成.o文件
function.* :选择所有function开头的函数,这样是为了避免一些内核函数,如kmalloc之类的被下了断点
按照上面的命令,就会在/tmp/__make_break_point里生成一个gdb中可以直接使用的脚本
直接在gdb界面中:
srouce /tmp/__make_break_point__