当前位置: 首页>>代码示例>>Java>>正文


Java ExitMonitorStmt类代码示例

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


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


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