Nice way to get the SootMethod of a statement?

Moderator: Automated Code Analysis for Large Software Systems

Benutzeravatar
mmi1991
Computerversteher
Computerversteher
Beiträge: 349
Registriert: 20. Okt 2011 18:46
Wohnort: Hattersheim

Nice way to get the SootMethod of a statement?

Beitrag von mmi1991 »

Hi there,
is there any nice way to get the SootMethod of a statement?
I am currently using this helper method:

Code: Alles auswählen

	 * Returns the corresponding SootMethod to a unit. Throws an exception if the unit could not be found.
	 * @param seek the unit to seek
	 * @return the corresponding SootMethod
	 */
	public static SootMethod getMethod(Unit seek) {
		Chain<SootClass> classes = Scene.v().getApplicationClasses();
		for (SootClass cclass : classes) {
			for (SootMethod method : cclass.getMethods()) {
				if (method.isConcrete())
				{
					Body body = method.retrieveActiveBody();
					for (Unit unitCurrent : body.getUnits()) {
						if (unitCurrent == seek)
							return method;
					}
				}
			}
		}
		throw new RuntimeException("Unit " + seek + " not found in application.");
	}
Ophasentutor SoSe 2014, WiSe 2015/16
Alle Angaben wie immer ohne Gewähr

pSub
Mausschubser
Mausschubser
Beiträge: 61
Registriert: 21. Sep 2009 22:56

Re: Nice way to get the SootMethod of a statement?

Beitrag von pSub »

You can use

Code: Alles auswählen

interproceduralCFG().getMethodOf(stmt)
.

Benutzeravatar
mmi1991
Computerversteher
Computerversteher
Beiträge: 349
Registriert: 20. Okt 2011 18:46
Wohnort: Hattersheim

Re: Nice way to get the SootMethod of a statement?

Beitrag von mmi1991 »

Thanks ;)
Ophasentutor SoSe 2014, WiSe 2015/16
Alle Angaben wie immer ohne Gewähr

Antworten

Zurück zu „Automated Code Analysis for Large Software Systems“