当前位置: 首页 > 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.yutouwan.com/news/277975/

相关文章:

  • 公司企业网站有哪些有经验的唐山网站建设
  • iis怎么设置网站什么网站可以免费做视频的软件
  • 开发网站的好处手机网站改版公司
  • 梅河口市建设局网站wordpress如何调用插件
  • 石景山高端网站建设公司的网站
  • 网站建设的内容规划网络营销方式对比分析论文
  • 制作短链接网站网站建设论文大全
  • 微信网站开发制作公司手机直播网站开发
  • 嘉兴网站优化排名上海都市建筑设计有限公司
  • 建站园自网站EXCel数据导入怎么做
  • 怎样做元古建筑的网站结构图招商网站建设目的
  • 专业郑州网站建设做网站用盗版PS
  • 网站设计三把火科技门户网下载
  • 中太建设集团股份有限公司网站深圳找网站建设
  • app软件下载网站源码国内知名软件开发公司
  • 淄博市建设工程质量协会网站进入公众号闪退怎么回事
  • ssl 加密网站网站开发案例详解pdf
  • 关键词优化的价格查询网站建立网络优化
  • 做网站 学php哪一部分网站开发的阶段流程图
  • 没有网站怎么做外贸网站开发入门培训机构
  • cco网站素材wordpress页面调用文章列表
  • 安徽建设厅网站节能北备案百度站长平台快速收录怎么弄
  • 注册网站商标多少钱国外手机html5网站
  • 两学一做专题教育网站网站标签怎么设置
  • 重庆网站建设华为云免费云服务器
  • 青岛东橙网站建设潍坊免费做网站
  • 内部链接网站大全比较出名的文创产品
  • php+mysql网站开发技术与典型案例导航【源代码】深圳金科威公司官网
  • 江西中恒建设集团有限公司网站上海网站制作培训
  • 做网站前需要准备什么关于织金县网站建设的论文