当前位置: 首页 > news >正文

网站开发用什么写网站建设明薇通网络不错

网站开发用什么写,网站建设明薇通网络不错,佛山智唯网站建设,北京住房和建设部网站首页开源代码分析技巧之——打印调用逻辑 在研究开源代码时#xff0c;大家或许都有这样的感慨#xff1a; #xff08;1#xff09;代码太庞大#xff0c;少则几万行代码#xff0c;多则几百万行代码#xff0c;不知道如何入手#xff1b; #xff08;2#xff09;相关的…  开源代码分析技巧之——打印调用逻辑           在研究开源代码时大家或许都有这样的感慨       1代码太庞大少则几万行代码多则几百万行代码不知道如何入手       2相关的帮助文档有限很难短时间内理清头绪       3有了代码在手但代码之间的调用相当复杂一层一层追踪总是理不清调用逻辑顺序。           1、从SAMBA源码说起           笔者在研究kerberos认证时需要开源的samba软件。如下是samba的官网http://www.samba.org/。                  Samba最新版本为4.1.10统计得出其中.c及.cpp的文件有近4000个累计代码近百万行。所以对其的全面分析有一定难度。当然我们可以根据所需缩小范围从指定所需的指令对应的代码追溯代码调用逻辑。          2、给源码插入“调用逻辑线索”代码          即便如此有时还是想直观看下某个模块的调用顺序能不能直观的打印出来而如何打印调用逻辑呢如果每个函数的头部都加上文件名、函数名、行号的打印语句这样不就解决了我们的问题了吧。        而编译器里内置了宏如下几个编译器内置的宏定义这些宏定义不仅可以帮助我们完成跨平台的源码编写灵活使用也可以巧妙地帮我们输出非常有用的调试信息。        ANSI C标准中有几个标准预定义宏也是常用的 __LINE__在源代码中插入当前源代码行号__FILE__在源文件中插入当前源文件名__DATE__在源文件中插入当前的编译日期__TIME__在源文件中插入当前编译时间__STDC__当要求程序严格遵循ANSI C标准时该标识被赋值为1__cplusplus__当编写C程序时该标识符被定义__FUNCTION__:在源文件中插入函数名。         编译器在进行源码编译的时候会自动将这些宏替换为相应内容。        于是printf(“File: %s, Function: %s, Line: %s.\n”, __FILE__, __FUNCTION__, __LINE__);这个C的语句就是我们所需的。        于是问题就有所转嫁给指定文件夹下的所有.c及.cpp文件下的所有函数的第一行插入“printf(“File: %s, Function: %s, Line: %s.\n”, __FILE__, __FUNCTION__, __LINE__);”标记打印语句以下统称。          3、思路分析         完成任务给指定文件夹下的所有.c及.cpp文件下的所有函数的首行插入指定代码。       输入包含源码的文件夹路径名如:存储samba源码的路径名——C:\tmp\samba4.0.9。       中间处理遍历、处理、添加标记打印语句。       输出无。      任务分解如下       Step1遍历指定文件夹及其所有子文件夹将所有文件路径存入容器vector_all_dir       Step2遍历容器vector_all_dir将后缀为.c及.cpp的文件存入容器vector_ctype_dir       Step3遍历容器vector_ctype_dir的每一个路径打开路径对应的每个文件—读取文件内容存入buffer--清空原有文件内容       Step4读取buffer的内容循环遍历buffer找到函数头开始的标记“)\n{”并记录其对应位置position在poisitionstrlen(“)\n{”)后插入标记打印语句。这样就生成了新的buffer——buffer_after_newadd       Step5将新的添加标记打印语句的buffer_after_newadd重新写入源路径关闭文件。 笔者已经完毕代码在samba4.0.9测试能够实现预想的调用顺序逻辑打印。         4、尚待改进点       1读取buffer部分是按照字符串处理并且是废弃以前的文件将添加标记打印语句的新buffer写入文件的方法。效率较低有待改进。     2以“)\n{”判定函数不具有一般性。第一Windows下的换行符为\r\n而Linux下的换行符为\n第二函数的书写不同比如如下的格式格式一、格式二都很常用都应该考虑。       格式一 void function( ) {}      格式二 void function( ){ }5、结语           权当是分析开源的小技巧吧确实对自己分析开源软件提供了帮助。后续有了新的心得会持续分享。            2013/10/13 am9:55思于家中床前  转载于:https://www.cnblogs.com/suncoolcat/p/3367578.html
http://www.sadfv.cn/news/277975/

相关文章:

  • wordpress网站整站搬迁免费推广网站58
  • 专业房地产网站建设网络上市场推广
  • 东莞横沥网站建设风兰网络
  • 德宏企业网站建设国家建设部网站官网
  • 在小型网站建设小组怎么把做的网站上传到网络
  • 贷款类的网站好做怎么做网站建设鼎网络
  • 一个网站主机多少钱哪个网站微博做的最好
  • 官方网站平台下载软件网站加载很慢怎么办
  • 商品图片网站开发最简单的做网站的软件
  • 客户在我这做的网站被罚wordpress调用随机文章
  • 公司网站建设开发济南兴田德润简介图片企业网站的主要内容
  • 网站升级建设方案东莞有哪些互联网公司
  • 门户网站建设工序有什么公司是建设网站的吗
  • 网站设计现状微信h5支付
  • 绍兴兴住房和城乡建设局网站wordpress首页布局插件
  • 为学校网站建设网站演示程序
  • 陵水县建设局网站购物网站建设网站
  • 公司招聘网站网站上做旅游卖家要学什么
  • 梧州网站建设服务商鞍山黄殿满
  • 网站开发系统绿色版免费体验服务器
  • 网站会员体系方案软件网站关键词优化
  • 苏州市吴中区住房和城乡建设局官方网站个人网站能 做淘客吗
  • 大石桥城乡规划建设局网站温州网络学堂
  • 网站建设与管理课程实训为什么要建设旅游网站
  • 太原网站开发团队长岭网站优化公司
  • 做电商要关注哪些网站中国建筑集团排名
  • 网站建设服务哪家便宜网站用哪个做
  • iis6无法新建网站教资报名网站设置
  • 织梦网站怎么做索引地图0基础做网站工具
  • 网站建设属于淘宝哪种类目域名怎么起