`
gaojian881
  • 浏览: 7198 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

cflow的使用

 
阅读更多

cflow(pointcut):表示在执行连接点pointcut所匹配的函数时进行匹配,如下例所示:

aj中的代码:
package com.gaojian.aspectj.test;

public aspect MyAspectj {
pointcut callF(): execution(* f(..)) && cflow(call(* com.gaojian.aspectj.test1.*.foo(..)));

before() : callF() {
System.out.println("before call f()");
}
}

   function中的代码:

package com.gaojian.aspectj.test1;

public class Function {
	
	public void f() {
		System.out.println("method excution!");
	}
	
	public static void main(String[] args) {
		new Function().f();
	}
}

  Test中的代码:

package com.gaojian.aspectj.test1;

public class Test {
	public void foo(Function function) {
		function.f();
	}
	
	public void foo1(Function function){
		function.f();
	}
	public static void main(String[] args) {
		new Test().foo(new Function());
		System.out.println("*******differences**********");
		new Test().foo1(new Function());
	}
}

 执行test中的main函数运行结果为

before call f()
method excution!
*******differences**********
method excution!

 

程序分析:1:aj pointcut的execution(* f(..))匹配function中的f()函数;

               2:在类Test中调用f()函数应该都要执行aj中的前置通知函数;

               3:aj pointcut中有cflow(call(* com.gaojian.aspectj.test1.*.foo(..))):当执行连接点call(* com.gaojian.aspectj.test1.*.foo(..))匹配的函数Test中foo()函数的时候进行匹配。

               4:所以test中的foo执行时,aj中的前置函数执行了;则test中的foo1执行时,aj中的前置函数未执行了。

分享到:
评论

相关推荐

    Cflow使用详解

    Cflow的基本使用方法很简单,通过在命令行中调用cflow并指定要分析的源文件,就能够生成调用关系图。例如,如果要分析一个名为whoami.c的C语言源文件,可以使用如下命令: ``` $cflow whoami.c ``` 这将输出从main...

    cflow-latest.tar.bz2

    cflow 最新 函数调用关系 分析工具

    cflow2dot.1.0.pl.tar

    用于将cflow生成的代码调用关系文件转换成dot文件,方便出图

    cflow-latest.rar_CFlowPlus 软件_cflow

    用户在使用CFlowPlus时,应确保正确安装和配置这个版本,以充分利用其功能。 总的来说,CFlowPlus是一个强大的软件分析工具,适用于需要深入了解和优化代码流程的开发者。通过对程序的控制流进行可视化,它可以极大...

    cflow-1.4.tar.gz

    8. **安装与使用**:下载cflow-1.4.tar.gz后,用户需要解压,编译源代码,然后按照提供的文档或命令行帮助来运行Cflow,分析指定的C源代码项目。 9. **与其他工具的集成**:Cflow的输出可以与其他软件工程工具(如...

    Cflow2VCG-开源

    Cflow2VCG的使用非常简单,用户只需提供cflow的输出文件,然后通过Cflow2VCG工具,就可以生成对应的VCG图形。生成的VCG图可以导入各种文档格式,如PDF或SVG,方便在报告或演示文稿中使用。此外,由于Cflow2VCG是开源...

    pycflow2dot:使用GraphViz点从cflow布局C调用图

    使用dot和cflow为C源代码绘制调用图。 使用每个源文件的页面排版PDF,并单击可单击的跨文件函数引用。 cflow2dot -i hello_simple.c -f png产生: 来自 。 描述 使用和绘制C源代码的调用图。 输出到 , , , , ...

    aspectj-cflow-composition-example

    通过阅读和运行项目中的代码,你可以学习如何定义切面,编写切入点表达式,以及如何在实际场景中使用`cflow`。 要运行这个示例,你需要安装并配置Maven,然后在命令行中导航到项目根目录并执行`mvn test`。这将会...

    BD C6流式细胞术处理软件

    **CFlow Plus**是BD C6流式细胞术处理软件的核心组件,通过批处理模式运行,例如`CFlow Plus.bat`可能是一个启动该软件的快捷方式。CFlow Plus提供了数据采集、分析和结果展示的一站式解决方案,使研究人员能够高效...

    IoT Studio 开发环境搭建指南.pptx

    为了帮助开发者更好地使用 IoT Studio,本文档提供了详细的开发环境搭建指南,包括一键安装和手动安装两种方式。 一键安装方式可以快速地安装所有必要的工具,而手动安装方式则需要逐步安装八个必要的工具,包括 ...

    Windows下生成函数关系调用图

    总之,通过使用这款工具,开发者可以在Windows环境下高效地分析多语言项目,生成清晰的函数调用关系图,从而提升代码质量和维护性,促进团队协作,加速问题解决。对于任何涉及复杂代码结构的项目,这都是一种不可或...

    基于c语言中调试工具的用法汇总(不包含gdb)

    虽然GDB是最常用的C语言调试工具,但还有其他一些工具同样值得了解和使用。本文将汇总几种C语言的调试工具,它们可以在编译阶段帮助我们发现错误,提高代码质量。 首先介绍的是`splint`工具。Splint是一款静态代码...

    BabelDeobfuscator:BabelDeobfuscator 是 BabelObfuscator 的开源反混淆器

    类/字段/方法的简单重命名(Cflow 问题) 一些字符串没有用 vb.net (xx.My Type) 编写的项目去混淆 笔记 要清理控制流,请使用 我只有演示版,所以如果你可以分享一些受完整版保护的应用程序,我可以改进它

    topsy:使用图算法研究CC ++源代码的方法

    使用您Linux系统已经拥有的工具(GNU cflow和tsort ),topsy列出了源文件的功能/符号的总顺序,以帮助那些研究不熟悉的代码的人。和用于导出这些序列。动机例如,一个程序,其main()调用parse_something() ,该程序...

    流量监控和分析 NetFlow Analyzer 12.5.0 x64 中文多语免费版.zip

    NetFlow Analyzer 网络流量监控软件支持多种 Flow 格式,包括:NetFlow、sFlow、 cflow、J-Flow、FNF、IPFIX、NetStream、 Appflow等,可解析多达100K Flow/秒的大流量数据,是包括思科在内的主流网络设备厂商官方...

    ConfuserExTools:ConfuserEx开箱工具

    它仅对ConfuserEx(AntiTamper,ReferenceProxy,Constants)提供基本支持,因为它是我个人使用的工具。 它是否得到进一步的更新取决于我是否仍然需要它。 注意:对于常量解密,它仅支持非CFG模式。 用法 下载最新...

    jboss aop

    JBoss AOP支持使用注解编译器,针对JDK 1.4版本,该编译器支持注解、枚举类型、注解内嵌注解等功能,简化了AOP的配置过程。 #### 安装 JBoss AOP的安装可以通过独立安装或与JBoss 4.x应用服务器集成两种方式实现,...

    海思35XX MPP构架和3798 UNF构架分析 - 副本.pdf

    静态分析包括对代码的直接查看和分析,以及通过工具生成函数调用关系图,如使用cflow和dot工具。而动态分析则通过跟踪实际的函数调用流程,使用了ltrace、strace、valgrind以及perf等工具来动态分析内核调用。 文档...

    PhoenixDeobfuscator:PhoenixDeobfuscator 是 PhoenixObfuscator 的开源反混淆器

    凤凰去混淆器 PhoenixDeobfuscator 是的开源反。 它使用由编写的 Dnlib 用于汇编版本。 特征 PhoenixDeobfuscator 支持一些功能: ... 类/字段/方法的简单重命名(Cflow 问题) 笔记 要清理控制流,请使用

    NetFlowAnalyzer12.rar

    NetFlow Analyzer网络流量监控软件支持多种Flow格式,包括:NetFlow、sFlow、 cflow、J-Flow、FNF、IPFIX、NetStream、 Appflow等,可解析多达100K Flow/秒的大流量数据,是包括思科在内的主流网络设备厂商官方推荐...

Global site tag (gtag.js) - Google Analytics