本文整理了Java中soot.Body.getUseAndDefBoxes()
方法的一些代码示例,展示了Body.getUseAndDefBoxes()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Body.getUseAndDefBoxes()
方法的具体详情如下:
包路径:soot.Body
类名称:Body
方法名:getUseAndDefBoxes
[英]Returns a list of boxes corresponding to Values either used or defined in any unit of this Body.
[中]返回与此正文的任何单位中使用或定义的值相对应的框列表。
代码示例来源:origin: Sable/soot
@Override
protected Set<Set<Value>> entryInitialFlow() {
// initially all values only alias themselves
Set<Set<Value>> res = new HashSet<Set<Value>>();
for (ValueBox vb : body.getUseAndDefBoxes()) {
res.add(Collections.singleton(vb.getValue()));
}
return res;
}
代码示例来源:origin: Sable/soot
@Override
/** Verifies that a ValueBox is not used in more than one place. */
public void validate(Body body, List<ValidationException> exception) {
Set<ValueBox> set = newSetFromMap(new IdentityHashMap<ValueBox, Boolean>());
for (ValueBox vb : body.getUseAndDefBoxes()) {
if (set.add(vb)) {
continue;
}
exception.add(new ValidationException(vb, "Aliased value box : " + vb + " in " + body.getMethod()));
for (Unit u : body.getUnits()) {
System.err.println(u);
}
}
}
代码示例来源:origin: Sable/soot
@Override
protected Map<Value, Parity> newInitialFlow() {
Map<Value, Parity> initMap = new HashMap<Value, Parity>();
for (Local l : g.getBody().getLocals()) {
Type t = l.getType();
// System.out.println("next local: "+next);
if ((t instanceof IntegerType) || (t instanceof LongType)) {
initMap.put(l, BOTTOM);
}
}
for (ValueBox vb : g.getBody().getUseAndDefBoxes()) {
Value val = vb.getValue();
if (val instanceof ArithmeticConstant) {
initMap.put(val, getParity(initMap, val));
}
}
if (Options.v().interactive_mode()) {
updateBeforeFilterMap();
}
return initMap;
}
代码示例来源:origin: Sable/soot
return;
for (Iterator<ValueBox> bIt = m.retrieveActiveBody().getUseAndDefBoxes().iterator(); bIt.hasNext();) {
final ValueBox b = bIt.next();
Value v = b.getValue();
代码示例来源:origin: Sable/soot
List<ValueBox> vbList = b.getUseAndDefBoxes();
代码示例来源:origin: Sable/soot
for (Iterator vbIt = body.getUseAndDefBoxes().iterator(); vbIt.hasNext();) {
final ValueBox vb = (ValueBox) vbIt.next();
Value v = vb.getValue();
代码示例来源:origin: com.bugvm/bugvm-soot
/** Verifies that a ValueBox is not used in more than one place. */
public void validateValueBoxes()
{
List<ValueBox> l = getUseAndDefBoxes();
for( int i = 0; i < l.size(); i++ ) {
for( int j = 0; j < l.size(); j++ ) {
if( i == j ) continue;
if( l.get(i) == l.get(j) ) {
System.err.println("Aliased value box : "+l.get(i)+" in "+getMethod());
for( Iterator<Unit> uIt = getUnits().iterator(); uIt.hasNext(); ) {
final Unit u = uIt.next();
System.err.println(""+u);
}
throw new RuntimeException("Aliased value box : "+l.get(i)+" in "+getMethod());
}
}
}
}
代码示例来源:origin: ibinti/bugvm
/** Verifies that a ValueBox is not used in more than one place. */
public void validateValueBoxes()
{
List<ValueBox> l = getUseAndDefBoxes();
for( int i = 0; i < l.size(); i++ ) {
for( int j = 0; j < l.size(); j++ ) {
if( i == j ) continue;
if( l.get(i) == l.get(j) ) {
System.err.println("Aliased value box : "+l.get(i)+" in "+getMethod());
for( Iterator<Unit> uIt = getUnits().iterator(); uIt.hasNext(); ) {
final Unit u = uIt.next();
System.err.println(""+u);
}
throw new RuntimeException("Aliased value box : "+l.get(i)+" in "+getMethod());
}
}
}
}
代码示例来源:origin: ibinti/bugvm
protected Object newInitialFlow()
{
HashMap<Value, String> initMap = new HashMap<Value, String>();
Chain locals = g.getBody().getLocals();
Iterator it = locals.iterator();
while (it.hasNext()) {
Local next = (Local)it.next();
//System.out.println("next local: "+next);
if ((next.getType() instanceof IntegerType) || (next.getType() instanceof LongType)){
initMap.put(next, BOTTOM);
}
}
Iterator boxIt = g.getBody().getUseAndDefBoxes().iterator();
while (boxIt.hasNext()){
Value val = ((ValueBox)boxIt.next()).getValue();
if (val instanceof ArithmeticConstant) {
initMap.put(val, getParity(initMap, val));
}
}
if (Options.v().interactive_mode()){
updateBeforeFilterMap();
}
return initMap;
}
代码示例来源:origin: com.bugvm/bugvm-soot
protected Object newInitialFlow()
{
HashMap<Value, String> initMap = new HashMap<Value, String>();
Chain locals = g.getBody().getLocals();
Iterator it = locals.iterator();
while (it.hasNext()) {
Local next = (Local)it.next();
//System.out.println("next local: "+next);
if ((next.getType() instanceof IntegerType) || (next.getType() instanceof LongType)){
initMap.put(next, BOTTOM);
}
}
Iterator boxIt = g.getBody().getUseAndDefBoxes().iterator();
while (boxIt.hasNext()){
Value val = ((ValueBox)boxIt.next()).getValue();
if (val instanceof ArithmeticConstant) {
initMap.put(val, getParity(initMap, val));
}
}
if (Options.v().interactive_mode()){
updateBeforeFilterMap();
}
return initMap;
}
代码示例来源:origin: com.bugvm/bugvm-soot
for( Iterator vbIt = body.getUseAndDefBoxes().iterator(); vbIt.hasNext(); ) {
final ValueBox vb = (ValueBox) vbIt.next();
Value v = vb.getValue();
代码示例来源:origin: ibinti/bugvm
for( Iterator vbIt = body.getUseAndDefBoxes().iterator(); vbIt.hasNext(); ) {
final ValueBox vb = (ValueBox) vbIt.next();
Value v = vb.getValue();
内容来源于网络,如有侵权,请联系作者删除!