• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java ExitMonitorStmt类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中soot.jimple.ExitMonitorStmt的典型用法代码示例。如果您正苦于以下问题:Java ExitMonitorStmt类的具体用法?Java ExitMonitorStmt怎么用?Java ExitMonitorStmt使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ExitMonitorStmt类属于soot.jimple包,在下文中一共展示了ExitMonitorStmt类的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: checkSynchronizationStmt

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
private void checkSynchronizationStmt(Stmt sootStmt)
{
	if(sootStmt instanceof EnterMonitorStmt)
	{
		EnterMonitorStmt enterMonitorStmt = (EnterMonitorStmt)sootStmt;
		lockStack.add(0, enterMonitorStmt.getOp());
		expSecondExitMonitor = false;
	}
	else if(sootStmt instanceof ExitMonitorStmt)
	{
		if(!expSecondExitMonitor)
		{
			lockStack.remove(0);
			expSecondExitMonitor = true;
		} else
		{
			expSecondExitMonitor = false;
		}
	}
}
 
开发者ID:k4v,项目名称:Sus,代码行数:21,代码来源:BodyAnalysis.java


示例2: caseExitMonitorStmt

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
public void caseExitMonitorStmt(ExitMonitorStmt stmt) {
	if (uses) {
		if (stmt.getOp() instanceof Local) {
			TypeVariable op = resolver.typeVariable((Local) stmt.getOp());

			op.addParent(resolver.typeVariable(RefType.v("java.lang.Object")));
		}
	}
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:10,代码来源:ConstraintCollector.java


示例3: getUnitsWithMonitor

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
public Set<Unit> getUnitsWithMonitor(UnitGraph ug) {
	Set<Unit> unitsWithMonitor = new HashSet<Unit>();
	
	for (Unit head : ug.getHeads()) {
		List<Unit> workList = new ArrayList<Unit>();
		workList.add(head);
		Set<Unit> doneSet = new HashSet<Unit>();
		
		while (!workList.isEmpty()) {
			Unit curUnit = workList.remove(0);
			if (!doneSet.add(curUnit))
				continue;
			
			workList.addAll(ug.getSuccsOf(curUnit));
			
			// If this is an "entermonitor" construct,
			// we're in a monitor from now on
			if (curUnit instanceof EnterMonitorStmt)
				unitsWithMonitor.add(curUnit);
			// If we leave a monitor, we're out now
			else if (curUnit instanceof ExitMonitorStmt)
				continue;
			else {
				for (Unit pred : ug.getPredsOf(curUnit))
					if (unitsWithMonitor.contains(pred))
						unitsWithMonitor.add(curUnit);
			}
		}
	}
	
	// Get rid of the entermonitor statements themselves
	for (Iterator<Unit> it = unitsWithMonitor.iterator(); it.hasNext(); )
		if (it.next() instanceof EnterMonitorStmt)
			it.remove();
	
	return unitsWithMonitor;
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:38,代码来源:TrapTransformer.java


示例4: caseExitMonitorStmt

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
@Override
public void caseExitMonitorStmt(ExitMonitorStmt arg0) {
	injectLabelStatements(arg0);		
	arg0.getOp().apply(this.valueswitch);
	this.valueswitch.getExpression();
	// TODO:

	this.inMonitor = false;
}
 
开发者ID:SRI-CSL,项目名称:bixie,代码行数:10,代码来源:SootStmtSwitch.java


示例5: analyzeUnitExitMonitor

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
private void analyzeUnitExitMonitor(SootMethod method, UnitGraph cfg,
                                    ExitMonitorStmt unit)
{
    addUnitToEmptyProduction(unit,method);

    analyzeSuccessors(method,cfg,unit);
}
 
开发者ID:trxsys,项目名称:gluon,代码行数:8,代码来源:BehaviorAnalysis.java


示例6: analyzeUnit

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
private void analyzeUnit(SootMethod method, Unit unit, UnitGraph cfg,
                         StackNode<EnterMonitorStmt> stack)
{
    if (visited.contains(unit))
        return; /* Unit already taken care of */

    visited.add(unit);

    if (unit instanceof EnterMonitorStmt)
        stack=new StackNode<EnterMonitorStmt>(stack,(EnterMonitorStmt)unit);
    else if (unit instanceof ExitMonitorStmt
             && stack != null)
    {
        EnterMonitorStmt enter;

        enter=stack.element();

        if (!exitMon.containsKey(enter))
            exitMon.put(enter,new ArrayList<ExitMonitorStmt>(8));

        exitMon.get(enter).add((ExitMonitorStmt)unit);

        stack=stack.parent();
    }

    for (Unit succ: cfg.getSuccsOf(unit))
        analyzeUnit(method,succ,cfg,stack);
}
 
开发者ID:trxsys,项目名称:gluon,代码行数:29,代码来源:MonitorAnalysis.java


示例7: caseExitMonitorStmt

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
@Override
public void caseExitMonitorStmt(ExitMonitorStmt stmt) {
	throw new RuntimeException("todo");
	
}
 
开发者ID:srasthofer,项目名称:FuzzDroid,代码行数:6,代码来源:JimpleStmtVisitorImpl.java


示例8: caseExitMonitorStmt

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
public void caseExitMonitorStmt(ExitMonitorStmt stmt) {
	String varName = printValueAssignment(stmt.getOp(), "monitor");
	
	printStmt(stmt,varName);
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:6,代码来源:StmtTemplatePrinter.java


示例9: caseExitMonitorStmt

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
public void caseExitMonitorStmt(ExitMonitorStmt stmt)
{
	stmt.setOp(this.uv.visit(
		stmt.getOp(), RefType.v("java.lang.Object"), stmt));
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:6,代码来源:UseChecker.java


示例10: caseExitMonitorStmt

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
public void caseExitMonitorStmt(ExitMonitorStmt stmt) {
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:3,代码来源:ConstraintChecker.java


示例11: caseExitMonitorStmt

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
@Override
public void caseExitMonitorStmt(ExitMonitorStmt stmt) {
       addInsn(buildMonitorInsn(stmt, Opcode.MONITOR_EXIT), stmt);
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:5,代码来源:StmtVisitor.java


示例12: caseExitMonitorStmt

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
@Override
public void caseExitMonitorStmt(ExitMonitorStmt s) {
    result = result.add(mgr.ILLEGAL_MONITOR_STATE_EXCEPTION);
    result = result.add(mgr.NULL_POINTER_EXCEPTION);
    result = result.add(mightThrow(s.getOp()));
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:7,代码来源:UnitThrowAnalysis.java


示例13: caseExitMonitorStmt

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
@Override
public void caseExitMonitorStmt(ExitMonitorStmt stmt) {
    throwNotImplementedException(stmt.getClass(), stmt.toString());
}
 
开发者ID:proglang,项目名称:jgs,代码行数:5,代码来源:SecurityConstraintStmtSwitch.java


示例14: caseExitMonitorStmt

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
@Override
public void caseExitMonitorStmt(ExitMonitorStmt stmt) {
	logger.fine("\n > > > Exit monitor statement identified < < <");
	valueSwitch.callingStmt = stmt;
	throw new NotSupportedStmtException("ExitMonitorStmt");
}
 
开发者ID:proglang,项目名称:jgs,代码行数:7,代码来源:AnnotationStmtSwitch.java


示例15: caseExitMonitorStmt

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
@Override
public void caseExitMonitorStmt(ExitMonitorStmt stmt) {
	logger.fine("\n > > > Exit monitor statement identified < < <");
	throw new NotSupportedStmtException("ExitMonitorStmt");
}
 
开发者ID:proglang,项目名称:jgs,代码行数:6,代码来源:AnnotationStmtSwitch.java


示例16: MonitorAnalysis

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
public MonitorAnalysis(Scene s)
{
    scene=s;
    visited=null;
    exitMon=new HashMap<EnterMonitorStmt,Collection<ExitMonitorStmt>>();
}
 
开发者ID:trxsys,项目名称:gluon,代码行数:7,代码来源:MonitorAnalysis.java


示例17: getExitMonitor

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
public Collection<ExitMonitorStmt> getExitMonitor(EnterMonitorStmt enterMon)
{
    assert exitMon.containsKey(enterMon);

    return exitMon.get(enterMon);
}
 
开发者ID:trxsys,项目名称:gluon,代码行数:7,代码来源:MonitorAnalysis.java


示例18: caseExitMonitorStmt

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
/**
 * Method, which should process the given statement of type
 * {@link ExitMonitorStmt}, but is not implemented in the current version of
 * this method. If method will be called an exception is thrown.
 * 
 * @param stmt
 *            Statement that should be processed to check for security
 *            violations.
 * @see soot.jimple.StmtSwitch#caseExitMonitorStmt(soot.jimple.ExitMonitorStmt)
 * @throws UnimplementedSwitchException
 *             Method throws always this exception, because the method is
 *             not implemented.
 */
@Override
public void caseExitMonitorStmt(ExitMonitorStmt stmt) {
    throw new SwitchException(getMsg("exception.analysis.switch.not_implemented",
                                     stmt.toString(),
                                     getSourceLine(),
                                     stmt.getClass().getSimpleName(),
                                     this.getClass().getSimpleName()));
}
 
开发者ID:proglang,项目名称:jgs,代码行数:22,代码来源:SecurityLevelStmtSwitch.java


示例19: caseExitMonitorStmt

import soot.jimple.ExitMonitorStmt; //导入依赖的package包/类
/**
 * DOC
 * 
 * @see soot.jimple.StmtSwitch#caseExitMonitorStmt(soot.jimple.ExitMonitorStmt)
 */
@Override
public void caseExitMonitorStmt(ExitMonitorStmt stmt) {
    stmt.getOp().apply(valueSwitch);
}
 
开发者ID:proglang,项目名称:jgs,代码行数:10,代码来源:AnnotationStmtSwitch.java



注:本文中的soot.jimple.ExitMonitorStmt类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java JsonNotification类代码示例发布时间:2022-05-22
下一篇:
Java PropertyType类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap