简介 使用Doxygen来生成结构,使用Graphviz来显示结构: Doxygen:http://www.doxygen.nl/ 用来生成项目文档的工具软件,可将程序中的特定批注转换成为说明文件,还可以对项目代码的结构进行分析. 可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX.RTF参考手册. 支持如C++.C. Objective-C. C#. PHP.Java和IDL等语言. Graphvizhttp://www.graphviz.org/ 展示图和网络结构的…
Windows下使用doxygen阅读和分析C/C++代码 转自:http://blog.sina.com.cn/s/blog_63d902570100gwk6.html 虽然使用各种IDE或者Source Insight 可以方便地在windows下阅读和分析C/C++代码,但是一步步Go to Definetion 实在令人痛苦.Doxygen能够生成函数调用关系图,所有的函数调用关系可以一目了然,另外他还能统计文档中所有的类,成员变量,成员函数等.总的来说,Doxygen不但能从局部把握代…
比方我们在分析代码的时候,须要看某一个方法或类的定义,我们须要临时跳转过去看一下,然后还能非常方便的回来.这时候ctags就派上用场了. 比方你有一个src目录,先用ctags对其生成索引: ctags -R src 然后你会发如今当前文件夹下生成了tags文件,里边存储的就是索引. 我们如今能够開始分析代码了.用vi打开一个代码文件,当看到某一个方法的使用的时候.将光标移到此方法上,然后点击ctrl + ] 这两个键.就能够跳转到这种方法的定义上,然后能够点击ctrl + t键跳回来.注意,此…
看过上一篇关于Javascript 匀速运动文章的朋友相信对于运动已经有了初步的了解 接下来 讲一下关于缓冲运动的原理 ,我会逐行分析代码,代码简单易懂,能马上理解其中的原理,适用于初学者. #div1 { width: 100px; height: 100px; position: absolute; background: red; top: 50px; left:; /*600 初始值*/ } #div2 { width: 1px; height: 300px; position: abs…
smark 专注于高并发网络和大型网站架规划设计,提供.NET平台下高吞吐的网络通讯应用技术咨询和支持 基于byte[]的HTTP协议头分析代码 最近需要为组件实现一个HTTP的扩展包,所以简单地实现了HTTP协议分析.对于HTTP协议就不详细解说了网上的资料太丰富了,这里主要描述如何通过byte[]流分析出HTTP协议头信息.HTTP协议头有两个协议字符是比较重要的分别就是'\r\n'和':',前者要描述每个头信息的结束,而后则是属性名和属性值的分隔符号. 实现 由于并没有使用Stream来处…
介绍 Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd.checkstyle.findbugs.Jenkins.通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理.同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar.此外,Sonar 的插件还可以对 J…
上次介绍了用FindBugs辅助分析代码漏洞.这次换了一个工具:Fortify SCA Demo 4.0.0.Fortify是一个在安全方面挺出名的公司,这里就不多说了.先介绍一下主角:Fortify SCA Demo 4.0.0,尽管如今不知道Fortify SCA的版本号是多少,但能够肯定的是,Fortify SCA Demo 4.0.0是一个比較旧的Fortify SCA分析器了,而且还是Demo版的.所以不管是界面还是功能上都是比較简陋的.因为Fortify SCA不是开源的工具,这里就…
CVE-2019-11477:Linux 内核中TCP协议栈整数溢出漏洞详细分析 代码卫士 今天…
10分钟进阶SpringBoot - 05. 数据访问之JDBC 代码下载:https://github.com/Jackson0714/study-spring-boot.git 一.JDBC是什么? JDBC API 属于Java APIJDBC用于以下几种功能:连接到数据库.执行SQL语句 二.Spring Boot中如何使用JDBC 2.1 创建 Spring Boot Project 时引入 JDBC API 依赖和 MySQL Driver依赖,以及Spring Web依赖(测试时用…
时间:2017-08-23 整理:byzqy 题目:分析代码,写出程序的输出结果: 文件:Program.cs 1 using System; 2 3 namespace Interview2 4 { 5 class A 6 { 7 public static int X; 8 static A() 9 { 10 X = B.Y + 1; 11 } 12 } 13 14 class B 15 { 16 public static int Y = A.X + 1; 17 static B() {…
Clang静态分析和Instruments来剖析代码有一些不同,Clang更致力于在编译的过程中通过自身的一套判断机制来找出代码中潜在的隐患.   在XCode 3.2之后的版本里,Clang已经被集成进来,Static Analysis 是基于 Clang 的非常好的静态代码分析工具.可以从xcode直接运行Static Analysis 分析器.   Static Analysis 优点:   1.使用操作容易.   2.能够在编码阶段,开发自行进行代码检查.早期发现代码隐患.   3.直接…
1 ncc是一个编译器, 用于输出程序的一些调用信息等, 可以查看函数调用关系, 支持函数指针, 查看数据结构和代码. 可以用来分析和理解代码. “" ... with ncc, in less than 40 minutes I was able to comprehend the console i/o subsystem of the linux kernel and within an hour I had already submitted a patch to the l-k mai…
1-简介 Home Page : https://www.pylint.org/ 检查语法错误,是否遵守编码风格标准.潜在的问题等: 支持自定义配置:例如显示或隐藏特定的警告,并且可以通过编写插件来添加功能: 使用Pylint检查文件时,需要直接将模块或包名作为参数: 可以在命令行以脚本方式运行(pylint),也可作为模块(pylint.lint)导入,建议作为命令行工具使用:   2-帮助信息 帮助信息: 在命令行下运行“pylint -h”或“pylint --help”获取帮助信息: 常…
1.使用语法树 当我们要编写一个规则,例如 检测正值表达式的时候,如何编写有效的规则呢 Regex.Match("my text", @"\pXXX"); 这里我们可以借助分析工具 Roslyn Syntax Visualizer,在 视图>其他窗口>Syntax Visualizer 当我们在ConsoleApp项目中编写如下代码 namespace ConsoleApp1 { class Program { static void Main(stri…
阅读这篇文章需要掌握的基础知识:Html5.CSS.JavaScript 在线Demo:查看 扫雷规则 在写扫雷之前,我们先了解下它的游戏规则 ● 扫雷是一个矩阵,地雷随机分布在方格上. ● 方格上的数字代表着这个方格所在的九宫格内有多少个地雷. ● 方格上的旗帜为玩家所作标记. ● 踩到地雷,游戏失败. ● 打开所有非雷方格,游戏胜利. 功能实现思路分析 矩阵的生成 矩阵的生成有多种方式可以实现,我们这里使用<table>+<span>标签. 通过 js 给定行数与列数在<…
如前文概述,MySQL Binlog v3以前版本, 二进制日志文件的第一个事件是START_EVENT_V3, 从v4版本开始第一个事件为FORMAT_DESCRIPTION_EVENT(以下简称FD事件),替代掉START_EVENT_V3.具体到MySQL服务器版本来说,MySQL 5.0以前版本二进制日志的第一个事件是START_EVENT_V3,而后续版本的第一个事件都是FD事件,由于目前大部分MySQL都跑在5.0+,所以这里不讨论START_EVENT_V3事件,FD事件可以看成是…
时间:2017-08-23 整理:byzqy 题目:分析如下代码,写出程序输出结果. 文件:Class1.cs using System; namespace Interview3 { class Class1 { private string str = "Class1.str"; private int i = 0; static void StringConvert(string str) { str ="string being converted."; }…
参考资料: eclipse在线配置hibernate tools http://jingyan.baidu.com/article/db55b609959d154ba20a2f5d.html [图]Hibernate Tools-代码生成 - Adam哥 - 博客园http://www.cnblogs.com/abllyboy/archive/2010/12/23/1914577.html 一.在eclipse里安装hibernate插件 1.查看eclipse 版本 2.进入Eclipse M…
公司项目用的silverlight,而且silverlight一些技术 资料比较少.所以分享出来 给大家参考参考. 有关Silverlight中DataGrid 双击事件 的代码 如下: 1. 前台xaml文件,需要对datagrid的属性上加上 事件绑定 “MouseLeftButtonUp="dataGrid_MouseLeftButtonUp” <sdk:DataGrid Grid.Row="1" Name="dataGrid1" AutoGe…
我们看看之前的拖拽在周围有东西的时候会出现什么问题? 在高级浏览器中不会有啥问题,我们放到IE7下面测试一下,问题就出来了.如图 我们可以很清楚的看到,文字都已经被选中了.那这个用户体验很不好,用起来也不方便.顺便提一下,我们之前加了一个return false;帮我们解决了很多问题,如果去掉这个的话,chrome也会出现一样的问题.那么也就是说这个return false;可以解决chrome ff IE9+ 这些浏览器的问题. 实际上在我们开发中,页面上会有许多的元素组成,不可能就一个div…
今天我们来看看如何让拖拽的物体不能拖出某个div之外和拖拽的吸附功能 上次讲到我们的拖拽是不可拖出可视区范围的,在这基础上我们加个父级的div,不让他拖出父级.原理和之前的一样,简单吧. <div id="div2"> <div id="div1"> </div> </div> <style type="text/css"> #div1 { width: 100px; height: 1…
今天我们就来解决上一次拖拽雏形中的一些问题.下面看看有哪些问题? 附上上期的Javascript代码,方便大家查看问题. <script type="text/javascript"> window.onload = function() { var oDiv = document.getElementById("div1"); var disX = 0; var disY = 0; oDiv.onmousedown = function(ev) { v…
拖拽的原理: 其实就是鼠标与左上角的距离保持不变.我们来看下图, 这红点就是鼠标. 拖拽拖拽实际上来说就是通过鼠标的位置来计算物体的位置,就是这么简单,就是这么任性. 那这个距离怎么求呢?? 鼠标的位置-物体位置的差值就是那个距离 是吧.那这个斜线就是横线和竖线组成的. 我们距离看下程序怎么做. <div id="div1"> </div> 实际上他改的就是某个div 的left top ,那他就动起来了. 那样式中肯定要有绝对定位是吧. <style t…
大家一听这名字就知道,有了这套框架 网上的效果基本都是可以实现的.实际上之前的运动框架还是有局限性的,就是不能让好几个值一块运动. 那这个问题怎么解决呢? 我们先来看看之前的运动框架 function getStyle(obj, name) { if (obj.currentStyle) { return obj.currentStyle[name]; } else { return getComputedStyle(obj, null)[name]; } } function startMov…
所谓链式运动,就是一环扣一环.我们的很多运动实际上来说指的就是分阶段的,第一个阶段动完,下个阶段开始动. 这个链式运动框架就是用来处理这些问题的. 我们先来看下之前的运动框架,以下是Javascript 代码 function getStyle(obj, name) { if (obj.currentStyle) { return obj.currentStyle[name]; } else { return getComputedStyle(obj, null)[name]; } } func…
等待已久的可变大,变宽 等一系列效果运动框架出炉了,现在还是个初级版本,能满足需求.我们看看是如何实现的. 我们知道在Javascript 中 ‘.’等同于 ‘[]’ 例如: oDiv.style.height=oDiv.style[‘height’] 那么,我们把要运动的属性作为一个参数,传入到之前函数中即可. 透明度呢,需要单独处理,判断下即可. 直接上代码. <style type="text/css"> div { width: 200px; height: 200…
我们先来看看这个bug 是怎么产生的. <style type="text/css"> #div1 { width: 200px; height: 200px; background: red; } </style> <body> <div id="div1"> </div> </body> 以下是用来测试的Javascript代码 ,目的是 让div慢慢变窄. <script type=…
我们先来看下之前的运动的代码,是否支持多物体运动,会出现怎么样的问题. <style type="text/css"> div { width: 100px; height: 50px; background: red; margin: 10px; } </style> <body> <div></div> <div></div> <div></div> </body>…
我们先来看下之前的匀速运动的代码,修改了速度speed后会出现怎么样的一个bug.这里加了两个标杆用于测试 <style type="text/css"> #div1 { width: 100px; height: 100px; position: absolute; background: red; top: 50px; left: 600px; } #div2 { width: 1px; height: 300px; position: absolute; left:…
转载自: https://blog.csdn.net/zh_geo/article/details/52954145 VS2012 -> Analyze -> Calculate code metrics feature. 代码度量(Code Metrics)是用来测量专业标准的软件特性. 在某些方面,它提供了量化的有用反馈给开发者. 查看代码度量值很简单:在项目或解决方案上按右键,选择"Calculate Code Metrics". 以下是一些类似的结果: 结果窗口中有…