本文整理汇总了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;未经允许,请勿转载。 |
请发表评论