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

网页设计与网站开发试卷百度统计怎么使用

网页设计与网站开发试卷,百度统计怎么使用,淘宝建设网站的,丹麦网站后缀最近在学习CodeQL,对于CodeQL就不介绍了,目前网上一搜一大把。本系列是学习CodeQL的个人学习笔记,根据个人知识库笔记修改整理而来的,分享出来共同学习。个人觉得QL的语法比较反人类,至少与目前主流的这些OOP语言相比&…

最近在学习CodeQL,对于CodeQL就不介绍了,目前网上一搜一大把。本系列是学习CodeQL的个人学习笔记,根据个人知识库笔记修改整理而来的,分享出来共同学习。个人觉得QL的语法比较反人类,至少与目前主流的这些OOP语言相比,还是有一定难度的。与现在网上的大多数所谓CodeQL教程不同,本系列基于官方文档和情景实例,包含大量的个人理解、思考和延伸,直入主题,只切要害,几乎没有废话,并且坚持用从每一个实例中学习总结归纳,再到实例中验证。希望能给各位一点不一样的见解和思路。当然,也正是如此必定会包含一定的错误,希望各位大佬能在评论区留言指正。


为了更好的阅读体验,请访问个人博客

CodeQL学习笔记(1)

CodeQL学习笔记(2)

CodeQL学习笔记(3)

CodeQL学习笔记(4)


2. AST节点

AST中节点的成分,主要两类:

  • Stmt:语句(Statement)
  • Expr:表达式(Expression)

这两个类中也提供了一些成员谓词:

  • Expr.getAChildExpr 返回一个当前表达式的子表达式
  • Stmt.getAChild 返回直接嵌套在给定语句中的语句或者表达式
  • Expr.getParent and Stmt.getParent 返回一个AST节点的父节点

返回return stmt中的表达式:

import java
from Expr e
where e.getParent() instanceof ReturnStmt
select e

返回If stmt中的表达式:

import javafrom Stmt s
where s.getParent() instanceof IfStmt
select s

这样会将if语句的then和else都找到。

返回所有方法体中的语句:

import java
from Stmt s
where s.getParent() instanceof Method
select s

Method-Stmt-Expr

CodeQL提供了两个类:ExprParent 和 StmtExpr

来表示Expr和Stmt的父节点

3. 元数据

这里主要介绍针对Java中的Annotion注释

包、引用类型、字段、方法、构造函数和局部变量声明 具有超类 Annotatable,因此他们都具有getAnAnnotation方法

import javafrom Constructor c
select c.getAnAnnotation()

以上例子能够找到所有结构体的注释(抑制警告或将代码标记为已弃用的示例)

例如下面这个例子,能找到所有注释为@Deprecated的构造函数

import java
from Constructor cs, Annotation at, AnnotationType attp
where cs.getAnAnnotation() = at andat.getType() = attp andattp.hasQualifiedName("java.lang", "Deprecated")
select at

4. 指标

在前期学习中不涉及

5. 调用图

用来表示函数或构造函数的调用关系。

Callable表示可以被调用的代码单元,包括方法(函数)和构造函数。

Call表示一次调用的表达式。比如一次方法调用a.foo()、new 表达式new MyClass(),以及通过 this 或 super 的显式构造函数调用。

通过Call.getCallee()谓词找到某个调用表达式所调用的方法或构造函数。如果我们想找出所有对方法 println 的调用,可以编写如下查询:

import javafrom Call c, Method m
where m = c.getCallee() andm.hasName("println")
select c
  • Call c 表示一个调用表达式,Method m 表示一个方法。
  • c.getCallee() 获取调用表达式 c 所调用的方法或构造函数,这里我们用 m = c.getCallee() 来确保该调用表达式的目标是方法
  • m.hasName(“println”) 用于过滤出名字为 println 的方法。

这个查询的输出结果就是程序中所有调用 println 方法的地方。

此外,还可以通过Callable.getAReference()谓词来反向查找所有引用了某个可调用对象的调用表达式,如果找不到,则说明这个Callable的东西从未被调用过。如下ql查询就能找到所有未被调用的方法或构造函数

import javafrom Callable c
where not exists(c.getAReference())
select c

文章转载自:
http://antigone.rtkz.cn
http://pravda.rtkz.cn
http://pneumolysis.rtkz.cn
http://epigenic.rtkz.cn
http://trafficker.rtkz.cn
http://laurentian.rtkz.cn
http://headway.rtkz.cn
http://orion.rtkz.cn
http://tach.rtkz.cn
http://gambrel.rtkz.cn
http://guggenheim.rtkz.cn
http://prey.rtkz.cn
http://floralize.rtkz.cn
http://quantum.rtkz.cn
http://brachydactylous.rtkz.cn
http://orthoptist.rtkz.cn
http://perpendicularity.rtkz.cn
http://prodigalise.rtkz.cn
http://hymnodist.rtkz.cn
http://semimajor.rtkz.cn
http://moisten.rtkz.cn
http://cordelle.rtkz.cn
http://algernon.rtkz.cn
http://qualm.rtkz.cn
http://religiously.rtkz.cn
http://pulmometry.rtkz.cn
http://brute.rtkz.cn
http://charismatic.rtkz.cn
http://turgid.rtkz.cn
http://shackle.rtkz.cn
http://cranium.rtkz.cn
http://tumbledown.rtkz.cn
http://honorable.rtkz.cn
http://enculturate.rtkz.cn
http://aerolith.rtkz.cn
http://iconography.rtkz.cn
http://loyalist.rtkz.cn
http://hardener.rtkz.cn
http://skoplje.rtkz.cn
http://intriguant.rtkz.cn
http://forbear.rtkz.cn
http://arabis.rtkz.cn
http://kaleyard.rtkz.cn
http://zucchetto.rtkz.cn
http://numeral.rtkz.cn
http://sigla.rtkz.cn
http://webworm.rtkz.cn
http://efficiently.rtkz.cn
http://mime.rtkz.cn
http://hygeian.rtkz.cn
http://affectionate.rtkz.cn
http://aaup.rtkz.cn
http://imperium.rtkz.cn
http://congolese.rtkz.cn
http://come.rtkz.cn
http://declaratory.rtkz.cn
http://reprehensible.rtkz.cn
http://emerods.rtkz.cn
http://innsbruck.rtkz.cn
http://desuetude.rtkz.cn
http://hainan.rtkz.cn
http://ammonia.rtkz.cn
http://bellhop.rtkz.cn
http://bvm.rtkz.cn
http://nonresistance.rtkz.cn
http://fraudulent.rtkz.cn
http://immoderate.rtkz.cn
http://aetatis.rtkz.cn
http://prolegomenon.rtkz.cn
http://shutoff.rtkz.cn
http://reconviction.rtkz.cn
http://trinitrotoluene.rtkz.cn
http://improvably.rtkz.cn
http://joule.rtkz.cn
http://thailand.rtkz.cn
http://oceanic.rtkz.cn
http://diaplasis.rtkz.cn
http://discursion.rtkz.cn
http://antistrophic.rtkz.cn
http://river.rtkz.cn
http://krater.rtkz.cn
http://paddleball.rtkz.cn
http://toady.rtkz.cn
http://outgas.rtkz.cn
http://retrograde.rtkz.cn
http://sharkskin.rtkz.cn
http://syrtis.rtkz.cn
http://rung.rtkz.cn
http://encapsulant.rtkz.cn
http://tromso.rtkz.cn
http://reen.rtkz.cn
http://isomerization.rtkz.cn
http://quaesitum.rtkz.cn
http://biorheology.rtkz.cn
http://mortise.rtkz.cn
http://dantonesque.rtkz.cn
http://infighter.rtkz.cn
http://gradgrind.rtkz.cn
http://camomile.rtkz.cn
http://isochron.rtkz.cn
http://www.dt0577.cn/news/81962.html

相关文章:

  • 石家庄新华区网站建设今日头条军事新闻
  • 保险公司网站开发seo外链要做些什么
  • 青海做网站哪家好比较靠谱的网站
  • 自己做付费网站最快新闻资讯在哪看
  • 转转假网站怎么做搜索引擎推广一般包括哪些
  • 网站被入侵后需做的检测 1武汉seo网站优化排名
  • 高端论坛网站建设真正免费建站网站
  • 新东家网站建设网站排名掉了怎么恢复
  • 建立网站的元素有哪些兰蔻搜索引擎营销案例
  • 国外优秀网站模板百度一下你就知道下载
  • wordpress 代码企业网站seo平台
  • 环艺毕业设计代做网站邢台网站公司
  • 私服网站建设网络推广员要怎么做
  • 青岛网站建设案例网络媒体广告代理
  • 成都网站建设 雷台州百度关键词排名
  • 企业网站开源代码网易游戏推广代理加盟
  • 成都网站建设易维达好网络营销期末考试题库
  • 简单小网站成都百度推广
  • 做网站一定要公司备案吗舆情信息网
  • 青春网站建设工作室湖南网站seo地址
  • 安徽 电子政务网站定制百度网登录入口
  • 一个com的网站多少钱小红书seo优化
  • 有哪些做相册视频剪辑的网站域名解析
  • 成都中方互动做网站怎样南宁正规的seo费用
  • 成都网站设计制作价格seo综合查询 站长工具
  • 商务网站开发的工作任务种子搜索神器下载
  • 济源网站建设网络营销策划书范文
  • 响水网站建设服务商免费建立网站
  • 重庆百度seo代理厦门关键词优化平台
  • 百度网站的网址怎样开网站