当前位置:  技术问答>linux和unix

用source insight阅读内核源代码问题请教?

    来源: 互联网  发布时间:2017-01-24

    本文导语:  查看内核源代码或u-boot源代码时,由于硬件支持问题,一个变量可能在多个文件中定义。用SI看代码是要找到正确的定义找半天,非常不适合我这样的新手学习,不知道各位有什么高招?求指教! | ...

查看内核源代码或u-boot源代码时,由于硬件支持问题,一个变量可能在多个文件中定义。用SI看代码是要找到正确的定义找半天,非常不适合我这样的新手学习,不知道各位有什么高招?求指教!

|
一般每个架构都是分目录的,直接把整个目录删掉,只保留比如x86的文件夹。 然后再建工程。 一般只需要花半个小时就能找出来。比如我看apache的源代码,就直接弄了个脚本来删除。可以参考下。

  4 files="bs2000 win32 beos prefork winnt netware mpmt_os2 os2 tpf aix os390"
  5
  6 for file in $files
  7 do
  8   rmfiles=`find . -name $file`
  9   echo "rm -rf $rmfiles"
 10   echo "############################"
 11   rm -rf $rmfiles
 12 done

|
结合你的硬件平台来确定变量的定义。

另外,不仅仅看代码,也要参考其它资料,了解整个架构以及代码的组织,这样才能更好地理解。

--无论是内核还是u-boot,还是其它项目代码。

|
确实存在一个变量或结构体在多个地方有定义的情况
需要依靠程序员根据具体的cpu体系结构区分,这是驱动程序员的基本要求


此外 ,如果实在搞不定找不到,在.c源码开头位置自己定义这个变量或结构体,编译内核就会报错,错误信息会告诉你真正的定义位置

|
我理解,所找到的每个定义都是有用的,无法说那个是正确的定义;因为无法知道,当前文件会与哪些包含定义的文件联系或链接在一起。
  明白了这一点,我想应该在某个MAKEFILE的作用范围内(还要去掉条件编译的情况),找原始定义的出处;SI有这样的功能吗?或者我们可以自己编写宏来实现这个功能吗?


|
编译下,有中间文件 .o的就是你所要的。

|
在工程中把不相关硬件平台的文件夹和文件移除。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教一个shell中source使用问题
  • 请教如何将pc_lint与Source Insight 3.0整合?
  • 请教:LINUX下有没有能象source insight那样解析并阅读代码的工具?解决问题50分相送!
  • java命名空间java.lang.annotation枚举retentionpolicy的类成员方法: source定义及介绍
  • source命令的问题
  • java命名空间javax.tools枚举javafileobject.kind的类成员方法: source定义及介绍
  • 关于linux source命令的问题
  • java命名空间javax.tools枚举standardlocation的类成员方法: source_output定义及介绍
  • source
  • java命名空间javax.tools枚举standardlocation的类成员方法: source_path定义及介绍
  • 源码分析工具 Source Navigator NG
  • java命名空间javax.management类notification的类成员方法: source定义及介绍
  • jQuery Annotated Source
  • java命名空间java.awt.image.renderable类parameterblock的类成员方法: sources定义及介绍
  • how to find the linux shell source???
  • java命名空间javax.swing.plaf.basic类basictreeui.mouseinputhandler的类成员方法: source定义及介绍
  • shell脚本中执行source命令
  • java命名空间java.util类eventobject的类成员方法: source定义及介绍
  • shell脚本中source问题
  • java命名空间javax.xml.transform接口source成员方法: getsystemid定义参考
  • 无法source hosts文件
  • java命名空间javax.xml.transform接口source成员方法: setsystemid定义参考
  • Adobe Source Libraries
  • CSS3 border-image-source 属性
  • 源码编辑控件 Source-Highlight-Qt


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3