让vdsp与uclinux共舞(18):让VDSP读取vmlinux的调试信息
2010-03-06 16:27
239 查看
快乐虾 http://blog.csdn.net/lights_joy/ lights_joy@163.com
本文适用于
ADSP-BF561
Visual DSP++ 5.0(update 7)
Bfin-uclinux-2009R1.1-RC4
欢迎转载,但请保留作者信息
在前面的方案中,有一个很大的遗憾,就是无法让VDSP读取vmlinux里的详细调试信息,虽然VDSP通过读取.symtab这个符号表的数据可以得到函数的地址,但是却无法提供更进一步的信息。因为虽然GCC和VDSP生成的二进制文件都是用DWARF2来保存调试信息的,但是二者却不完全兼容。
经过前一段时间的努力,结合ADI提供的一些资料,终于解决了这个问题,但是由于签署了NDA的关系,在此就不披露二者之间的细微区别了。仅记录一下个人的一点工作。
考虑到以后的扩展,直接以code::blocks插件的形式实现了一个转换程序,就像这样的:
![](http://hi.csdn.net/attachment/201003/6/11379_126786422863Sg.jpg)
转换完成后就可以在VDSP下看到详细的调试信息了,嘿嘿:
![](http://hi.csdn.net/attachment/201003/6/11379_1267864230s6CC.jpg)
有了VDSP这个利器,我们希望它可以提供这样的帮助:
1、快速确定性能瓶颈,比如SD卡的读写。
2、驱动调试,告别printk这样的原始方式。
3、内核崩溃分析。
希望在以后的实践中能够继续完善这种方案^_^
在开发此程序的过程中发现了VDSP一些很有趣的事情,比如在下面的函数里我们明明说了没有返回值:
void sub_func()
但是到了VDSP那里,非得给它安一个int类型的返回值,让人很是不解!
此外,VDSP将这种格式保密的做法也很让人不解,有必要吗?
下一步:让VDSP读取gdb文件,这样VDSP就可以调试GCC生成的用户程序了!
近日,我家6岁的小姑娘参加了第六届POP全国少儿英语风采大赛,拉票进行中(2011-6-15前)。
请帮忙点击新东方网站的链接:
http://popdasai.xdf.cn/toupiao.php?do=space&uid=4237
投她一票,谢谢!
让vdsp与uclinux共舞(16):修正一处错误(2009-12-14)
让vdsp与uclinux共舞(15):总结(2009-11-11)
让vdsp与uclinux共舞(14):驱动发布(2009-11-11)
让vdsp与uclinux共舞(13):应用程序加载(2009-11-10)
让vdsp与uclinux共舞(12):应用程序开发(2009-11-9)
让vdsp与uclinux共舞(11):方案改进(2009-11-6)
让vdsp与uclinux共舞(10):加载SMP内核(2009-11-4)
让vdsp与uclinux共舞(9):查找内核函数(2009-11-3)
让vdsp与uclinux共舞(8):vdsp驱动框架(2009-11-3)
让vdsp与uclinux共舞(7):在内核为驱动预留空间(2009-11-2)
让vdsp与uclinux共舞(6):用vdsp开发驱动的设想(2009-11-2)
让vdsp与uclinux共舞(5):加入dwarf调试信息(2009-11-2)
让vdsp与uclinux共舞(4):加载uclinux(2009-11-2)
让vdsp与uclinux共舞(3):boot kernel(2009-10-31)
让vdsp与uclinux共舞(2):vdsp的影响(2009-10-31)
让VDSP与uclinux共舞(1):开篇(2009-10-30)
本文适用于
ADSP-BF561
Visual DSP++ 5.0(update 7)
Bfin-uclinux-2009R1.1-RC4
欢迎转载,但请保留作者信息
在前面的方案中,有一个很大的遗憾,就是无法让VDSP读取vmlinux里的详细调试信息,虽然VDSP通过读取.symtab这个符号表的数据可以得到函数的地址,但是却无法提供更进一步的信息。因为虽然GCC和VDSP生成的二进制文件都是用DWARF2来保存调试信息的,但是二者却不完全兼容。
经过前一段时间的努力,结合ADI提供的一些资料,终于解决了这个问题,但是由于签署了NDA的关系,在此就不披露二者之间的细微区别了。仅记录一下个人的一点工作。
考虑到以后的扩展,直接以code::blocks插件的形式实现了一个转换程序,就像这样的:
![](http://hi.csdn.net/attachment/201003/6/11379_126786422863Sg.jpg)
转换完成后就可以在VDSP下看到详细的调试信息了,嘿嘿:
![](http://hi.csdn.net/attachment/201003/6/11379_1267864230s6CC.jpg)
有了VDSP这个利器,我们希望它可以提供这样的帮助:
1、快速确定性能瓶颈,比如SD卡的读写。
2、驱动调试,告别printk这样的原始方式。
3、内核崩溃分析。
希望在以后的实践中能够继续完善这种方案^_^
在开发此程序的过程中发现了VDSP一些很有趣的事情,比如在下面的函数里我们明明说了没有返回值:
void sub_func()
但是到了VDSP那里,非得给它安一个int类型的返回值,让人很是不解!
此外,VDSP将这种格式保密的做法也很让人不解,有必要吗?
下一步:让VDSP读取gdb文件,这样VDSP就可以调试GCC生成的用户程序了!
近日,我家6岁的小姑娘参加了第六届POP全国少儿英语风采大赛,拉票进行中(2011-6-15前)。
请帮忙点击新东方网站的链接:
http://popdasai.xdf.cn/toupiao.php?do=space&uid=4237
投她一票,谢谢!
1 参考资料
让vdsp与uclinux共舞(17):实战uboot-2009r1-rc3(2010-1-4)让vdsp与uclinux共舞(16):修正一处错误(2009-12-14)
让vdsp与uclinux共舞(15):总结(2009-11-11)
让vdsp与uclinux共舞(14):驱动发布(2009-11-11)
让vdsp与uclinux共舞(13):应用程序加载(2009-11-10)
让vdsp与uclinux共舞(12):应用程序开发(2009-11-9)
让vdsp与uclinux共舞(11):方案改进(2009-11-6)
让vdsp与uclinux共舞(10):加载SMP内核(2009-11-4)
让vdsp与uclinux共舞(9):查找内核函数(2009-11-3)
让vdsp与uclinux共舞(8):vdsp驱动框架(2009-11-3)
让vdsp与uclinux共舞(7):在内核为驱动预留空间(2009-11-2)
让vdsp与uclinux共舞(6):用vdsp开发驱动的设想(2009-11-2)
让vdsp与uclinux共舞(5):加入dwarf调试信息(2009-11-2)
让vdsp与uclinux共舞(4):加载uclinux(2009-11-2)
让vdsp与uclinux共舞(3):boot kernel(2009-10-31)
让vdsp与uclinux共舞(2):vdsp的影响(2009-10-31)
让VDSP与uclinux共舞(1):开篇(2009-10-30)
相关文章推荐
- 让vdsp与uclinux共舞(5):加入dwarf调试信息
- 查看vmlinux的符号信息
- Linux下获取xml调试信息等级
- Linux下使用QT调用opencv读取摄像头视频 调试心得
- linux驱动调试--段错误之栈信息分析
- linux中Oops信息的调试及栈回溯—Linux人都知道,这是好东西!
- linux中Oops信息的调试及栈回溯
- 让vdsp与uclinux共舞(16):修正一处错误
- 在Linux下串口信息的读取有了一点心得体会
- linux ecliipse 调试丢失信息解决办法 Missing separate debuginfos
- linux中Oops信息的调试及栈回溯
- linux下 用cpuid指令读取CPU信息
- linux驱动调试之Oops信息---针对arm处理器
- Linux的oops内核调试信息 && Linux Kernel Panic报错解决思路
- Linux驱动调试手段:打印信息日志
- 使用libdwraf写的一个读取GCC -g参数编译生成的调试信息的例子
- 让vdsp与uclinux共舞(11):方案改进
- linux-framebuffer设备——读取触摸屏信息
- 学习笔记 --- LINUX应用调试之修改内核输出应用程序的段错误信息
- linux输出信息调试信息重定向