(1)要先修改linux kernel 源代码的顶层Makefile
CC = $(CROSS_COMPILE)gcc
修改为
CC = $(CROSS_COMPILE)gcc -g
这样编译的内核模块就带有debug信息
#arm-linux-objdump -S -D opps.ko>log
#vi log
这样就可以看到汇编和C源文件的混合代码
(2)应用层调试
arm-linux-androideabi-addr2line -f -e ./out/target/product/tiger-cdr/obj/EXECUTABLES/ccdr_intermediates/LINKED/ccdr 0000bd9c
root@camdroid:/ # echo "m" > proc/sysrq-trigger [ 34.017614] android_usb gadget: high-speed config #1: android
[ 34.312816] SysRq : Show Memory
[ 34.316532] Mem-info:
[ 34.319145] Normal per-cpu:
[ 34.320044] CPU 0: hi: 18, btch: 3 usd: 13
[ 34.320044] active_anon:1066 inactive_anon:6 isolated_anon:0
[ 34.320044] active_file:212 inactive_file:929 isolated_file:0
[ 34.320044] unevictable:0 dirty:0 writeback:0 unstable:0
[ 34.320044] free:3633 slab_reclaimable:177 slab_unreclaimable:824
[ 34.320044] mapped:1108 shmem:8 pagetables:69 bounce:0
[ 34.320044] free_cma:0
[ 34.320044] Normal free:14532kB min:1016kB low:1268kB high:1524kB active_anon:4264kB inactive_anon:24kB active_file:848kB inactive_file:3716kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:65024kB mlocked:0kB dirty:0kB writeback:0kB mapped:4432kB shmem:32kB slab_reclaimable:708kB slab_unreclaimable:3296kB kernel_stack:840kB pagetables:276kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[ 34.320044] lowmem_reserve[]: 0 0
[ 34.320044] Normal: 363*4kB (UM) 203*8kB (UEM) 106*16kB (UM) 61*32kB (UEM) 34*64kB (UEM) 12*128kB (UEM) 0*256kB 0*512kB 0*1024kB 0*2048kB 1*4096kB (R) = 14532kB
[ 34.320044] 1152 total pagecache pages
[ 34.320044] 16384 pages of RAM
[ 34.320044] 3787 free pages
[ 34.320044] 8675 reserved pages
[ 34.320044] 1001 slab pages
[ 34.320044] 2128 pages shared
[ 34.320044] 0 pages swap cached
root@camdroid:/ #
62 是ccdr 进程 ,查看 /proc/62/task 是否有增长
root@camdroid:/proc/62/task/110 # cd ..
root@camdroid:/proc/62/task # ls
110
111
115
117
122
124
126
127
128
129
130
174
183
62
82
83
86
87
88