Julian Dolby
5eb1c7bc1d
HybriDroid support
2016-09-15 21:14:34 -04:00
Julian Dolby
30bc2858c4
fix for slicer issue in javascript
2016-08-23 20:59:08 -04:00
Julian Dolby
0f0c3d6bd9
add more functionality to analysis engine: create SDGs and
...
parameterize to do both regular and field-based analysis in JavaScript
2016-08-18 22:43:12 -04:00
Manu Sridharan
d0fdd2cdf0
Remove incorrect methods from ICFGSupergraph
...
These methods were constructing an IR based on some default
AnalysisOptions, which may not match the options used when constructing
the underlying CallGraph. This mismatch can lead to bad bugs.
Instead of these methods, analyses should get IR directory from the
CGNodes via CGNode.getIR().
Ideally we would fix the methods and not change the interface, but
that would require knowing the right AnalysisOptions, which itself
would necessitate an interface change.
2016-08-11 11:24:50 -07:00
Manu Sridharan
5e51615222
Fix some generic type warnings
2016-07-21 16:57:38 -07:00
Julian Dolby
73747cbb86
fixes for work with ECJ
2016-07-05 19:37:36 -04:00
Julian Dolby
22ce3d1144
Merge https://github.com/steohan/WALA
2016-06-29 13:03:50 -04:00
Andreas Sewe
e2e5bcf435
SecurityExceptions when analyzing JARs with broken/expired signatures
...
See <https://github.com/wala/WALA/issues/100 >
2016-06-08 11:08:10 +02:00
Julian Dolby
065a3ff767
pruned call graph takes edges as well as nodes
2016-06-06 14:17:12 -04:00
Julian Dolby
e87b2e5d84
fixes for slicing of field-based CGs
2016-02-14 17:18:21 -05:00
Julian Dolby
57a8c7d019
Merge branch 'master' of https://github.com/wala/WALA
2016-02-11 12:09:50 -05:00
Julian Dolby
eb7748a745
fixes for slicing of graphs built with the field-based builder
2016-02-11 11:51:39 -05:00
steohan
715b1e86fe
Merge pull request #1 from wala/master
...
Pull from Wala
2016-01-13 02:23:04 +01:00
Stephan Gocht
2869af24df
Bugfixes, code and documentation improvements.
2016-01-13 02:07:11 +01:00
Stephan Gocht
b75d93cb1c
Changed pi policy to only create pi nodes for integer variables.
2016-01-08 14:10:55 +01:00
Stephan Gocht
448c8c5f86
Missing Files for last commit.
2015-12-20 19:35:00 +01:00
Stephan Gocht
c3b7f9ffb3
Documentation and Refactoring.
2015-12-20 19:34:40 +01:00
Stephan Gocht
467707701f
Added InstructionByIindexMap, to make sureinstructions are identified by
...
iindex in hash and equals only.
2015-12-20 13:35:51 +01:00
Manu Sridharan
e95663e24a
Be more robust to broken java_runtime_dir
...
If java_runtime_dir in wala.properties is invalid, fall back to the
boot class path instead of just failing.
2015-12-16 10:56:09 -08:00
Julian Dolby
46a483f320
language changes
2015-12-15 19:33:59 -05:00
Julian Dolby
dc552316b9
language changes
2015-12-15 19:31:04 -05:00
Manu Sridharan
2f47ffa02b
Clarify a comment
2015-12-11 15:50:25 -08:00
Julian Dolby
1936ccd94f
changes for language work
2015-12-10 06:59:05 -05:00
Stephan Gocht
fd0d06df5d
Added correct handling for this pointer in member methods.
2015-11-30 23:03:28 +01:00
Stephan Gocht
bed18b792c
Extended exceptionan anlysis with exception filter.
2015-11-30 23:02:40 +01:00
Stephan Gocht
77b1ed71c7
Generalized Type.
2015-11-26 11:03:26 +01:00
Stephan Gocht
79883b3def
Completed implementation of basic functionality.
2015-11-25 17:05:51 +01:00
Stephan Gocht
c5c4799b35
Added minimalistic implementation of an exceptio analyisis. (Not fully
...
functional yet.)
2015-11-20 21:19:41 +01:00
Stephan Gocht
3acd97ebfb
Fixed assertion fault, in case of multidimensional arrays.
2015-11-15 21:05:39 +01:00
Julian Dolby
2b2543cfbb
fixed bugs with switch bytecodes in Dalvik.
...
ignore exceptions in callgraph construction when they are ignored in
bytecode from Dalvik.
2015-11-13 19:25:23 -05:00
Stephan Gocht
dfaa44d111
Added quicksort example, and made larger change as it wasn't as expected
...
first. This change should improve the results of the analysis.
2015-11-06 18:52:11 +01:00
Stephan Gocht
381cf2d2f1
Fixed a bug, which allowed only usage of phi notes with exactly 2 uses.
...
(There may be more than 2 uses in a phi note.)
2015-10-26 00:50:01 +01:00
Stephan Gocht
65fcc2d5da
Fixed a bug causing crash.
2015-10-23 14:55:39 +02:00
Stephan Gocht
ec4f5e506a
Removed unnecessary generic.
2015-10-23 14:54:49 +02:00
Stephan Gocht
7238f6d1ed
Fixed a bug, which was introduced in the previous commit. (Resulted in
...
infinite recursion.)
2015-10-23 09:48:20 +02:00
Stephan Gocht
e85816a986
Fixed getPis method.
2015-10-19 23:15:40 +02:00
Stephan Gocht
4e073e9afe
Added new PiPolicy to add pis for all variables used in a conditional
...
branch.
2015-10-19 23:15:21 +02:00
Stephan Gocht
58dd111203
Added classes for exception pruning and adapter for null pointer and
...
array out of bounds analysis.
2015-10-12 19:52:29 +02:00
Stephan Gocht
9024f19bf6
Added an array out of bounds analysis.
2015-10-12 19:51:14 +02:00
Stephan Gocht
f78ef5bcbb
Added new class for simpler access to intraprocedural null pointer
...
analysis.
2015-10-12 19:39:06 +02:00
Stephan Gocht
b32f798ae1
Modified files from earlyer change [1], so no format changes are done.
...
[1] 52ea4af62c
2015-10-11 19:25:05 +02:00
Julian Dolby
45af0414b7
more attempts to placate annoying ibm jvm
2015-09-18 21:48:13 -04:00
Julian Dolby
13de4a3bd1
add support for generic signatures
2015-09-16 13:23:21 -04:00
Stephan Gocht
6df7c85714
Changed class and construction modifier to public.
2015-09-07 23:11:41 +02:00
Stephan Gocht
2dc6322356
Extracted private class and made it public.
2015-09-07 21:49:03 +02:00
Stephan Gocht
52ea4af62c
Added Support for creating pi nodes for more than on variable.
2015-08-19 17:46:58 +02:00
Julian Dolby
045537274f
merge
2015-08-13 11:26:48 -04:00
Julian Dolby
671bd98977
Java 8 suport enhancements, mostly to model lambdas compiled to
...
invokedynamic
2015-08-12 15:20:21 -04:00
Julian Dolby
b1538aece6
Merge branch 'master' of https://github.com/wala/WALA
2015-08-09 13:47:01 -04:00
Julian Dolby
8470091225
Java 8 default methods
2015-08-09 13:46:03 -04:00
Manu Sridharan
13a46d8ea3
Fixes #82
...
PrunedCFG had been changed to always include an entry and exit node.
The logic for detecting an "empty" ExceptionPrunedCFG inside the PDG
construction code had not been updated appropriately.
2015-08-06 11:08:27 -07:00
Julian Dolby
223fb8d439
try to be more precise about finalize methods
2015-07-31 09:20:46 -04:00
Martin Mohr
9b8b323812
make configurable whether we apply an optimized version of hasExceptions()
2015-07-27 18:31:43 +02:00
Martin Mohr
65b9e97ae5
refine hasExceptions(): return true if there are *uncaught* exceptions
2015-07-27 14:17:18 +02:00
Julian Dolby
519b98a0ea
fixes to model of for ... in ... in JavaScript
2015-07-24 22:48:20 -04:00
Julian Dolby
563b6ba6aa
fixes for for ... in ... form in JavaScript
2015-07-24 22:44:10 -04:00
Julian Dolby
364fe7fa99
make dynamic and static analysis more consistent
2015-07-24 22:42:34 -04:00
Julian Dolby
b721a3ceb0
updates to dynamic call graphs to better match static ones
2015-07-10 09:44:01 +02:00
Julian Dolby
a6a060ed25
changes for handling of 'callbacks' in dynamic CGs
2015-06-28 17:06:21 -04:00
Martin Mohr
8d143dbf20
remove 'Custom Change' markers
2015-06-25 09:12:37 +02:00
Martin Mohr
0b92907149
Revert "cache for selectors"
...
This reverts commit 0af7f105ec
.
2015-06-25 09:12:37 +02:00
Juergen Graf
bd96807d7c
fix bug: npe on control dep computation when exceptions are ignored
2015-06-22 10:45:26 +02:00
Martin Mohr
f2a4bba83f
bugfix in debug output: only take item from worklist if it is not empty
2015-06-14 23:33:43 -07:00
Martin Mohr
b378f8c458
custom change: include target in string representation of cond-branch
2015-06-14 23:31:35 -07:00
Martin Mohr
29779f411a
allow adding a conditional branch instruction
2015-06-14 23:31:35 -07:00
Martin Mohr
a83ba08980
turn off debug output
2015-06-14 23:31:00 -07:00
Martin Mohr
80fd657675
transcribe non-overwritten reserved slots into "goto next" instructions
2015-06-14 23:31:00 -07:00
Martin Mohr
a5b6490951
fix getNextProgramCounter()
...
handle the case that the current program counter is free
2015-06-14 23:29:27 -07:00
Martin Mohr
1acbf4b9f7
preserve holes in instruction array when transcribing method summary
...
otherwise the iindex fields in the ssa instructions are inconsistent
with their index in the instruction array
2015-06-14 23:29:10 -07:00
Martin Mohr
1f105dc101
staticalize a method
2015-06-14 23:29:10 -07:00
Martin Mohr
9e5be48138
only generate return statement if caller and callee are compatible
2015-06-14 23:27:57 -07:00
Martin Mohr
0af7f105ec
cache for selectors
2015-06-14 23:27:57 -07:00
Julian Dolby
31f9f1b0b5
more exclusions
...
allow 1.8 libs
2015-06-04 15:51:46 -04:00
Julian Dolby
22ad339fd9
dalvik test infrastructure
2015-04-05 21:22:55 -04:00
Julian Dolby
d85347f231
Merge branch 'master' of https://github.com/wala/WALA
2015-04-05 21:20:03 -04:00
Julian Dolby
0975441a43
changes for hybrid analysis
2015-04-05 21:19:56 -04:00
Collin Winter
33d3139667
Use Arrays.toString() instead of the default array toString() method.
...
The former will include the contents of the array, while the latter
only includes the object's identity.
This will allow WALA to be compiled using Google's error-prone compiler
(https://github.com/google/error-prone ).
2015-03-25 19:02:28 -07:00
Julian Dolby
de26484098
java annotations support for dalvik
2015-03-04 13:49:58 -05:00
Julian Dolby
5cc870dd77
fixes to Dalvik support, and work on running Dalvik tests on Travis
2015-02-26 09:34:03 -05:00
Julian Dolby
096e2f796f
1) new support for function.prototype.apply in field-based CGs
...
2) fixes to Dalvik bytecode reader
3) fixes to Shrike writing Java 7 byte code
2014-12-11 21:48:23 -05:00
Cosmin Radoi
853b5fc37a
replace Filter with Predicate
2014-11-25 13:23:47 -06:00
Julian Dolby
bf7dbe6359
misc fixes
2014-11-18 22:37:51 -05:00
Julian Dolby
1a4757cf10
add option to allow getMethodto be handled only for user code. a
...
scalability compromise.
2014-11-18 22:30:47 -05:00
Cosmin Radoi
e2dce7be00
SSAInstruction equals based on iindex
2014-11-10 19:40:45 -06:00
Julian Dolby
68ad4dbba6
first cut at heap graph for field-based pointer analyais
2014-10-30 21:14:12 -04:00
Julian Dolby
1bb7610011
work toward pointer analysis based on the flowgraph from field-based
...
call graph builder
2014-10-19 22:44:03 -04:00
Julian Dolby
c9ad359d65
new test to remind me that prototype no longer works with correlation tracking:
...
com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestPrototypeCallGraphShapeRhino.java
com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestPrototypeCallGraphShape.java
com.ibm.wala.cast.js.test.data/examples-src/pages/prototype.html
work (not yet finished) on fixes to property accesses for JavaScript:
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstSSAPropagationCallGraphBuilder.java
com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaSSAPropagationCallGraphBuilder.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSSSAPropagationCallGraphBuilder.java
currently unused tests to remind me to fix bugs:
com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java
com.ibm.wala.cast.js.test.data/examples-src/tests/loops.js
com.ibm.wala.cast.js.test.data/examples-src/tests/primitive_strings.js
fixes to exception handler code generation in JavaScript:
com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/RhinoToAstTranslator.java
com.ibm.wala.cast.js.test.data/examples-src/tests/try.js
com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java
fixes to make the system build on both juno and luna
com.ibm.wala.cast.js.test.data/pom.xml
pom.xml
targets/e42/e42.target
targets/e44/e44.target
targets/pom.xml
com.ibm.wala.core.tests/META-INF/MANIFEST.MF
com.ibm.wala.dalvik.test/META-INF/MANIFEST.MF
com.ibm.wala.ide.jdt.test/META-INF/MANIFEST.MF
com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/translator/jdt/FakeExceptionTypeBinding.java
com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JavaEclipseProjectPath.java
com.ibm.wala.ide.jsdt.tests/META-INF/MANIFEST.MF
com.ibm.wala.ide.jsdt.tests/src/com/ibm/wala/ide/jsdt/tests/AbstractJSProjectScopeTest.java
com.ibm.wala.ide/src/com/ibm/wala/ide/util/EclipseProjectPath.java
com.ibm.wala.ide/src/com/ibm/wala/ide/util/ProgressMonitorDelegate.java
beginnings of "pointer analysis" on top of field-based analysis
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraph.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/PropVertex.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/RetVertex.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/VarVertex.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/VertexFactory.java
com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PointerAnalysis.java
com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ExceptionReturnValueKey.java
fixes for crashes in correlartion tracking
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/ClosureExtractor.java
fixes for Dalvik IR generation
com.ibm.wala.core/src/com/ibm/wala/cfg/BytecodeCFG.java
com.ibm.wala.core/src/com/ibm/wala/cfg/ShrikeCFG.java
com.ibm.wala.core/src/com/ibm/wala/ssa/SSACFG.java
com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/drivers/APKCallGraphDriver.java
com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/JVMLDalvikComparison.java
com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexCFG.java
com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/UnaryOperation.java
com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java
com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java
fixes to stack map generation when instrumenting for Java 7
com.ibm.wala.shrike/src/com/ibm/wala/shrike/cg/DynamicCallGraph.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConstantInstruction.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Analyzer.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchy.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Verifier.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/ClassInstrumenter.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapConstants.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableReader.java
com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableWriter.java
2014-10-15 16:01:38 +09:00
Julian Dolby
4e52c00a4b
re-enable assertion
2014-10-10 17:44:06 -04:00
Julian Dolby
14c9c96515
merge of java 7 changes.
...
fixes for Dalvik commit.
2014-10-06 17:41:58 -04:00
Julian Dolby
6c47da8091
Merge branch 'master' of https://github.com/wala/WALA
...
Conflicts:
com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/shrike/DynamicCallGraphTestBase.java
com.ibm.wala.ide.jdt.test/launchers/JDTJava15IRTests.launch
2014-10-06 15:43:42 -04:00
Julian Dolby
36709b9d1a
java 7 support, with much pain for stack maps :)
2014-10-06 15:34:16 -04:00
Julian Dolby
a1bc84356d
scandriod merge
2014-10-01 21:32:36 -04:00
Julian Dolby
774be73672
Merge https://github.com/jgf/wala-mirror
2014-09-11 10:43:13 -04:00
Julian Dolby
26f5254e3e
more support for Java 7:
...
analysis now understands and propagates MethodHandle objects
fixes to Shrike InvokeDynamic instruction
Former-commit-id: fb826f124423bcbca08f729cee1794fbda711d16
2014-08-07 16:02:48 -04:00
Martin Mohr
d762293ba1
support the addition of type information for element in aaload/aastore
...
fall back to java.lang.Object if no type is given
2014-08-01 12:46:33 +02:00
Juergen Graf
a13c0df9bd
cleanup in dalvik frontend related files
2014-08-01 12:32:22 +02:00
Juergen Graf
c05415720e
remove custom change markers for code that will be merged to main branch
2014-08-01 12:27:22 +02:00
Juergen Graf
7769c5b126
minor changes: remove debug code and sync with main branch
2014-08-01 12:27:21 +02:00
Juergen Graf
eb9e74f442
add/remove @SuppressWarnings to keep in sync with wala main branch
2014-07-30 16:17:37 +02:00
Juergen Graf
7ad38161b1
remove dependency from slf4j logger in wala.core project
2014-07-30 15:44:17 +02:00
Juergen Graf
8f6ec6bc54
cleanup
2014-07-30 15:05:15 +02:00
Juergen Graf
60228a8c0d
cleanup ssa instructions in wala.core
2014-07-29 19:43:58 +02:00
Juergen Graf
6f8aee80c6
Merge branch 'wala' into master
2014-07-28 17:09:02 +02:00
Julian Dolby
3910608d60
JavaScript slicer support
2014-07-11 11:55:02 -04:00
Julian Dolby
dd3124479e
allow control flow in induced cfgs, and various related fixes
2014-07-08 14:44:06 -04:00
Julian Dolby
d6ffcdc3bb
more checking
2014-07-08 14:41:28 -04:00
Michael Heilmann
ea40719069
Merge branch 'master' of https://github.com/wala/WALA into development
2014-06-26 17:52:47 +02:00
Michael Heilmann
0bb5e6998e
Remove redundant casts and imports, improve doc comments
2014-06-26 17:51:26 +02:00
Manu Sridharan
8e33a70c91
Merge pull request #53 from aaandrewww/master
...
Fix bug in ClassHierarchy.getLeastCommonSuperClass and imprecision in type inference
2014-06-22 12:08:59 -07:00
markus
ec2d2e9c9c
fixed JavaDoc warnings
2014-06-20 10:31:27 +02:00
markus
50c9c4a406
fixed JavaDoc warnings
2014-06-20 10:27:05 +02:00
Andrew Johnson
be4e805dc4
Merge remote-tracking branch 'wala/master'
2014-05-22 00:40:20 -04:00
Andrew Johnson
c3202533f7
Fixing bug in ClassHierarchy.getLeastCommonSuperclass
...
If C1 extends C2 extends C3 getLeastCommonSuperClass(C1,C2) would give C3 instead of C2
2014-05-21 23:28:11 -04:00
Juergen Graf
5a6f6c88e9
Merge branch 'wala' into master
2014-05-21 12:49:46 +02:00
Juergen Graf
a35d03bed6
fix wala.core testcases
2014-05-20 22:32:20 +02:00
Juergen Graf
4772f36d47
add standard type parameter to most pointer analysis references. When it breaks we move back to ? extends InstanceKey.
2014-05-20 22:00:06 +02:00
Juergen Graf
ef4513d377
revert PointerAnalysis hack that makes containsAny() and contains() methods in OrdinalSet unusable
2014-05-20 19:52:01 +02:00
Sam Blackshear
0fba08e581
adding comment explaining why instanceof check was replaced
2014-05-20 11:50:40 -06:00
Juergen Graf
428a3975ed
Merge branch 'wala' into master
...
Conflicts:
com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/loader/JavaSourceLoaderImpl.java
com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ssa/AstJavaInstructionFactory.java
com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ssa/AstJavaInvokeInstruction.java
com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/html/WebPageLoaderFactory.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/loader/JavaScriptLoader.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ssa/JSInstructionFactory.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ssa/JavaScriptInvoke.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstCallGraph.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AbstractLexicalInvoke.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstInstructionFactory.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstLexicalRead.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstLexicalWrite.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/FixedParametersInvokeInstruction.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/AstTranslator.java
com.ibm.wala.core/.classpath
com.ibm.wala.core/.settings/org.eclipse.jdt.core.prefs
com.ibm.wala.ide/src/com/ibm/wala/ide/util/ProgressMonitorDelegate.java
com.ibm.wala.util/src/com/ibm/wala/util/NullProgressMonitor.java
com.ibm.wala.util/src/com/ibm/wala/util/ProgressMaster.java
2014-05-20 17:59:16 +02:00
Sam Blackshear
fd47590634
Check class of parent variable directly rather than using instanceof check. Needed to get correct behavior for subclasses of ClassHierarchyMethodTargetSelector
2014-05-20 09:30:54 -06:00
Michael Heilmann
080fc8253e
Merge branch 'master' of https://github.com/wala/WALA into development
2014-05-20 13:18:52 +02:00
Michael Heilmann
efdd337dee
add and enable GetMethod context, interpreter and selector and associated unit tests
2014-05-20 13:12:06 +02:00
Michael Heilmann
45fe53a8bf
make NodeDecorator generic
2014-05-20 13:12:03 +02:00
Julian Dolby
7c0de83e74
move to Reader API to help with annoying /r/n issues is source mapping
2014-05-20 13:11:55 +02:00
Manu Sridharan
dddd830d14
synchronize methods. Fixes #43
2014-05-20 13:11:47 +02:00
Julian Dolby
6511d6acc3
move java 7 dependent code to core, so util works with java 6
2014-05-20 13:10:49 +02:00
Julian Dolby
dbd9c60d4f
type generalization
2014-05-20 13:10:22 +02:00
Sam Blackshear
4b7852472d
Update SSAConditionalBranchInstruction.java
...
Changing SSAConditionalInstruction.isObjectComparison(): previous definition returns true for comparisons of Primordial scope objects, but false for Application scope objects. The update version returns true in both cases
2014-05-20 13:08:59 +02:00
Michael Heilmann
f3dac38bc9
remove empty package
2014-05-20 12:49:58 +02:00
Michael Heilmann
d1f6564d23
fix doc comments
2014-05-20 12:49:56 +02:00
Michael Heilmann
349a8f8355
move GetMethod context, interpreter and selector into appropriate package, fix copyright notice
2014-05-20 12:49:53 +02:00
Michael Heilmann
525c203a8b
improve doc comments
2014-05-20 12:49:45 +02:00
Michael Heilmann
6c5ef65d5f
commit GetMethod context, interpreter and selector
2014-05-20 12:49:23 +02:00
Andrew Johnson
b29bc2dac0
Fix imprecision in type inference when merging a point array type and cone array type
...
In TypeInference when merging a PointType with a ConeType it is safe to return the cone type if
the underlying types are the same. Previously, if an array cone type and array point type were
merged this would result in a java.lang.Object even when the two arrays had the same base type.
Checking for equality first may also save a few cycles for reference types since the
isSubclass check is no longer performed for identical types.
2014-05-19 22:02:45 -04:00
Juergen Graf
d95e318234
Merge android specific changes from Tobias Blaschke into main branch.
2014-05-19 13:37:15 +02:00
Juergen Graf
cf9d623b40
change to compile in eclipse - move files from util to core due to dependencies
2014-05-19 13:24:47 +02:00
Manu Sridharan
fee72dfb66
Update AbstractNestedJarFileModule.java
...
Fixes #45
2014-05-16 10:30:05 -07:00
Martin Mohr
671bbcec01
Method Summaries: add support for reading array load instructions from XML
2014-05-16 15:19:21 +02:00
Juergen Graf
7c80cd3c97
allow a default method state to be injected into the interprocedural exception analysis
2014-05-06 23:55:49 +02:00
Juergen Graf
cc5162b95f
remove some compiler warnings in nullpointer analysis
2014-05-06 23:55:49 +02:00
Juergen Graf
00a9b03389
always compute exception pruned cfg, not only when standard analysis was successful
2014-05-06 23:53:18 +02:00
Julian Dolby
92bec0cc0b
move to Reader API to help with annoying /r/n issues is source mapping
2014-04-29 11:21:01 -04:00
Manu Sridharan
600e5ad50f
synchronize methods. Fixes #43
2014-04-24 12:35:34 -07:00
Tobias Blaschke
1857121a44
Add "Custom Change" where applicable
...
Added the lines
BEGIN Custom Change
END Custom Change
2014-04-11 17:58:33 +02:00
Tobias Blaschke
851594cff5
Make Intents immutable when attached to Context
...
Oops.
Fixes in intent-Resolution
2014-04-11 17:56:47 +02:00
Tobias Blaschke
abcd578a61
Use getters and setters for Intents, add explicit-attribute
...
These Changes are necessary to make the target of an Intent changeable.
Additionaly some preparing changes in the IntentMap
2014-04-11 17:56:46 +02:00
Tobias Blaschke
eced01bcb0
Add debug info and toString methods
2014-04-11 17:54:03 +02:00
Tobias Blaschke
a9864a5dab
Added specialized instantiators.
...
Creating an instance of e.g. Context would pull in all compontents
yielding a ununsable result.
2014-04-11 17:53:13 +02:00
Tobias Blaschke
00d711dd64
InducedCFG/GoTo: Handle basic block boundarys
...
Building the CFG with a SSAGotoInstuction was buggy: Oftain the wrong
jump-target was selected. This has bin fixed.
Additionally InducedCFG now automaticly breaks the basic-block at the
jump-target.
Jumping to Phi-Instructions however is still unsupported (as they are
not part of the cfg-instructions)
2014-04-11 17:53:13 +02:00
Tobias Blaschke
d5a98f9479
InducedCFG: Accept holes in the local Instruction array
...
The Instruction array in InducedCFG contains null-entries. Wheter that's
intentional or not, skipp over them.
2014-04-11 17:53:12 +02:00
Tobias Blaschke
2d9486b2a9
BUG: empty BB in InducedCFG.addExceptionalEdges
...
Current workaround is to ignore it
2014-04-11 17:53:11 +02:00
Tobias Blaschke
f8970f92b7
Enable variable-names in Synth. Methods
...
Using a SummarizedMethodWithNames instead of a normal one enables human
readable variable names in WALA-Synthetic methods. This should help
when debugging.
2014-04-11 17:53:10 +02:00
Tobias Blaschke
ece98a0628
Tools to facilitate buildin Synth. Methods
...
Have a toolkit that aids in building WALA-synthetic methods by helping
to avoid common mistakes and managing SSA-Variables.
See bundled package-info.java for more detail
2014-04-11 17:53:10 +02:00
Tobias Blaschke
34faac169d
Fixes on AndroidAnalysisScope
...
Depending on the method used generating an AnalysisScope failed for
Android-Apps. Especially depending on wheater data was used from a
jar-resource or depending on exclusions.txt
2014-04-11 17:51:59 +02:00
Tobias Blaschke
6c5f243ea5
Add GoTo-instruction for Synt. Methods (limited)
...
Implemented the GoTo istruction reachable through the
JavaInstructionFactory.
Caution:
- It has to be asshured manually that a basic block starts at the target
- One may not jump to a Phi-Instruction
2014-04-11 17:50:17 +02:00
Tobias Blaschke
dcf5cd4a1c
On progress monitoring
...
Small changes on progrss monitoring that enable having an actual
progress-meter instead of just having heart-beat information.
2014-04-11 17:50:17 +02:00
Tobias Blaschke
9ba0c06cf3
Add misc helper functions
...
Added small helper functions that may provide handy
2014-04-11 17:50:17 +02:00
Tobias Blaschke
964a0d86b9
Debug-Output only
...
No changes on the inner workings, only provided better Debug-Messages.
2014-04-11 17:50:17 +02:00
Juergen Graf
561472dfe5
new java versions in osx have different java.home - fix autodetection
2014-03-10 14:43:29 +01:00
Julian Dolby
3bc0ad9a2c
move java 7 dependent code to core, so util works with java 6
2014-03-03 14:30:19 -05:00
Martin Mohr
db263ecefc
additional 'pruning policy' to not prune anything; could be useful if one wants to temporarily switch off pruning without changing too much code
2014-02-25 16:59:08 +01:00
Martin Mohr
7f7684b57e
remove IBM header from class contributed by JOANA project
2014-02-25 16:56:58 +01:00
Juergen Graf
ce833aefe2
fix bug: count only really unresolved classes in ClassHierarchy
2014-02-17 15:01:18 +01:00
Julian Dolby
4c25c40789
type generalization
2014-02-08 22:52:19 -05:00
Juergen Graf
6d0a6ee0e8
add return value keys for RTA pointer analysis
2014-02-04 04:02:30 +01:00
Sam Blackshear
928555d425
Update SSAConditionalBranchInstruction.java
...
Changing SSAConditionalInstruction.isObjectComparison(): previous definition returns true for comparisons of Primordial scope objects, but false for Application scope objects. The update version returns true in both cases
2013-12-27 13:06:39 -05:00
Julian Dolby
0ccaae3b2c
pull exclusions file support into util project and then share it with
...
the shrike-based dynamic call graph builder so that static and dynamic
graphs can be built consistently more easily.
2013-11-14 13:02:56 -05:00
Martin Mohr
dcfd813ced
convert default pruning policy into public singleton
2013-10-28 16:52:42 +01:00
Martin Mohr
30d6a458c3
extend the call graph pruner to allow for other pruning policies than 'keep branch if you find application node on it'
2013-10-28 16:42:36 +01:00
Julian Dolby
cfb516a758
code to handle 'Class-Path' in jar files added to the scope. done for a
...
specific use, and so probably a little flaky.
2013-10-01 13:59:30 -04:00
Julian Dolby
a8fdf96cde
fix (i think) to edge computation caching
2013-09-26 13:15:32 -04:00
Manu Sridharan
8984637b86
make classes public. Fixes #32
2013-09-16 10:32:29 -07:00
Martin Mohr
3a454d01bd
fallback ContextInterpreter to avoid CodeScanner if this would crash
2013-08-28 18:46:45 +02:00
Martin Mohr
cbb3f5db7b
Bugfix: kill evil, cache-killing line
2013-08-21 16:55:42 +02:00
Julian Dolby
beab92e359
Fixed bugs in the front end handling esoteric cases of weird control
...
flow.
added support for JavaScript projects read from Eclipse that are based
on HTML files as well as JavaScript files
2013-07-30 14:04:08 -04:00
Manu Sridharan
e11f8b3182
patch to improve mapping of classes to source files
2013-07-08 15:26:28 -07:00
Juergen Graf
cdaaddf88b
Merge branch 'wala' into master
2013-07-02 14:23:24 +02:00
Manu Sridharan
b984760100
support for reading method parameter annotations from Java bytecodes
2013-06-28 11:44:47 -04:00
Julian Dolby
55b64712fc
merge conflict
2013-06-25 12:02:12 -04:00
Julian Dolby
080325b5f6
merge
2013-06-25 11:57:37 -04:00
Julian Dolby
3015d1c5f9
added container access to ModuleEntry
2013-06-25 11:53:58 -04:00
Manu Sridharan
05a9961108
add missing @Override annotations; no semantic change
2013-06-10 14:37:19 -07:00
Manu Sridharan
878cfa615d
changes to get tests passing on Java 7
2013-05-26 10:07:46 -07:00
Manu Sridharan
7ca109967d
read J2SE jars from bootclasspath if wala.properties cannot be loaded
2013-05-25 16:05:25 -07:00
Andreas Sewe
dc03348bce
Fix thread-safety bug in BytecodeClass.computeMethodMap
...
The map must not be modified after BytecodeClass.methodMap
has become non-null.
2013-05-24 10:25:01 +02:00
Manu Sridharan
3b1889121b
add missing copyright headers
2013-05-22 15:39:19 -07:00
Julian Dolby
dd6510da29
Merge branch 'master' of https://github.com/wala/WALA.git
2013-05-15 14:04:44 -04:00
Manu Sridharan
c4ce3999cd
fix possible NPE
2013-05-15 10:55:58 -07:00
Julian Dolby
310d0fff25
changes to ease use of WALA from an executable jar. also some very
...
basic support for GXL, a graph format used by some software engineering
tools.
2013-05-15 13:36:30 -04:00
Manu Sridharan
c0e3cb9831
fix for handling of static methods in ContainerContextSelector
2013-05-14 14:17:26 -07:00
Manu Sridharan
16a0e02fa0
add utility methods for creating n-CFA call graph builders
2013-05-10 20:55:13 -07:00
Manu Sridharan
89e90cd44e
rename computeMethodMap() to computeMethodMapIfNeeded()
2013-05-07 14:59:12 -07:00
Andreas Sewe
bc2594237b
Made BytecodeClass.computeMethodMap thread-safe
2013-05-07 14:56:06 -07:00
Andreas Sewe
d0b5e8ddd2
Made TypeName.findOrCreate thread-safe
2013-05-07 14:54:14 -07:00
Manu Sridharan
30686135da
Fix for bug with pi nodes reported by Andreas Sewe
...
We weren't handling the case where the val of the pi instruction
had an implicit points-to set.
2013-05-07 14:43:49 -07:00
Manu Sridharan
eac23e97a9
enable reading scope files from jars
2013-05-02 11:43:49 -07:00
Manu Sridharan
897268c7f9
fix comment
2013-04-30 12:09:55 -07:00
Manu Sridharan
1f254e9b74
formatting, fix warnings
2013-04-29 10:12:12 -07:00
Manu Sridharan
f439646cb1
fix potential NPE in AbstractRootMethod.addAllocation()
2013-04-15 08:58:42 +02:00
Manu Sridharan
dae0b33233
Merge branch 'master'
...
Conflicts:
com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/loader/JavaSourceLoaderImpl.java
com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShapeRhino.java
com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestSimplePageCallGraphShapeRhino.java
com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestSimplePageCallGraphShapeRhinoJericho.java
com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/vis/JsViewerDriver.java
com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java
com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/loader/JavaScriptLoader.java
com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstEntity.java
2013-04-09 15:56:47 -07:00
Manu Sridharan
11c6619c7f
Variety of changes to JS front end.
...
- crash fixes
- small enhancements to prologue and preamble
- tighter handling of timeouts during CG construction
2013-04-09 15:47:22 -07:00
Manu Sridharan
368daf9427
organize imports
2013-04-09 14:16:01 -07:00
Manu Sridharan
a7195852b1
don't cache synthetic method IR / DU in ExplicitNodes
2013-04-09 10:01:19 -07:00
Cosmin Radoi
d137143ecf
warning on SSAInstruction equals()
2013-04-08 17:08:32 -05:00
Manu Sridharan
0204a7fead
Merge pull request #15 from cos/cgnode-weakref-ir-defuse
...
use WeakReference so that CGNode.getIR() doesn't hit the cache too often
2013-04-08 14:27:50 -07:00
Manu Sridharan
9549da9954
read runtime-visible annotations for fields
2013-04-08 13:50:26 -07:00
Manu Sridharan
fa14d7a73d
Require that gen'd vector contains 0. fixes #8
2013-04-08 10:51:25 -07:00
Julian Dolby
321e925660
work on CHA
2013-04-03 12:12:43 -04:00
Juergen Graf
61d7a33928
remove warnings in com.ibm.wala.core
2013-03-12 00:50:17 +01:00
Juergen Graf
80920368ef
incorporate changes from other branch
...
- remove extraneous printing
- fixes for parse errors in JS and HTML
- fixes for handling parse errors in JS and HTML
- update comments
- Change BitVectorRepository to use LinkedLists
- improve javadoc
- fix for for in contexts for NEVER case
- missing VectorKill println method
2013-03-12 00:21:26 +01:00
Cosmin Radoi
3b48685d1d
use WeakReference so that CGNode.getIR() doesn't hit the cache too often
2013-02-19 15:30:06 -06:00
Manu Sridharan
1cf9a0008b
improve javadoc
2013-02-12 17:15:04 -08:00
Manu Sridharan
8e8e5fa8ba
Merge branch 'minor' of https://github.com/cos/wala into cos-minor
...
Conflicts:
com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/VectorKillFlowFunction.java
2013-02-06 16:54:46 -08:00
Cosmin Radoi
aa6487fafc
missing VectorKill println method
...
modeled after the VectorGen method
2013-02-06 18:21:01 -06:00
Juergen Graf
d77cfc60fc
incorporate changes from other branch
...
- Annotation support
- Properly fix path-with-spaces bug.
- fix bug involving paths with spaces
- add a simple driver for building a call graph via a scope file
- Properly return null as default constructor of an array.
- organize imports
- better handling of missing bytecodes
- javadoc
- test fix
- small Javadoc fix
- added date-property.js
- 1) added InstanceKey.getCreation sites and its implementations 2) fixes for issues with keys representing dynamic properties i) all properties are converted to strings,
- publicize method makeClasspath(). deprecate quoteStringIfNeeded()
- organize imports
- javadoc
- renamed classes to make relationship to mod-ref analysis clearer
- add support for lexical writes
- Code to compute transitive lexical accesses of methods.
- extract some generally useful code from ModRef
- Generate proper InstanceFieldKeys for property accesses with Numbers.
- rewrite to make hardest test appear last
- fix test to properly check reachability
- add an array test that doesn't quite work
- add method to get a PointerKey for a global
- compare FieldValueDispatch objects based on CGNode as well
- Handle duplicate field names between subclass and superclass.
2013-02-06 12:34:25 +01:00
Julian Dolby
afccdd2189
Annotation support
2013-02-02 21:27:45 -05:00
Martin Mohr
8806b7c119
refine last commit
2013-01-31 16:48:04 +01:00
Martin Mohr
b21fd9afb3
relax visibility of some methods in SSACFG (for dalvik frontend)
2013-01-31 16:41:27 +01:00
Manu Sridharan
590347f171
Properly fix path-with-spaces bug.
...
The previous fix happened to work, but it did the URL decoding
in the wrong place.
2013-01-30 21:05:23 -08:00
Manu Sridharan
182363bf88
fix bug involving paths with spaces
2013-01-30 17:29:41 -08:00
Manu Sridharan
ec8a0f1294
Properly return null as default constructor of an array.
...
Patch from Christophe Foket on the mailing list.
2013-01-25 10:29:49 -08:00
Manu Sridharan
ba228963bf
better handling of missing bytecodes
...
In some cases, class files will have non-abstract methods with no
bytecodes (e.g., stubs for compilation purposes). While such a class
file is invalid, we want to enable clients to handle such an error.
With these changes, Shrike will throw an InvalidClassFileException for
such cases, and WALA's IR construction code will throw a
WalaRuntimeException.
2013-01-21 15:27:13 -08:00
Manu Sridharan
6ed7b5a88e
javadoc
2013-01-10 09:48:38 -08:00
Manu Sridharan
29c73cea83
Merge branch 'lexical-access-info'
2013-01-09 14:27:14 -08:00
Manu Sridharan
202d5d525f
small Javadoc fix
2013-01-09 14:25:41 -08:00
Julian Dolby
9aa474fdb1
1) added InstanceKey.getCreation sites and its implementations
...
2) fixes for issues with keys representing dynamic properties
i) all properties are converted to strings, in an approximation of JS
semantics
3) fix to handling of instance keys representing numbers in binary +;
now it understands that adding constant keys of type Number requires
adding a non-constant Number key to the lval
2013-01-07 20:18:27 -05:00
Manu Sridharan
8ed998a249
extract some generally useful code from ModRef
2013-01-03 15:57:38 -08:00
Juergen Graf
41fdb087bb
ignore nativespec if attribute is null
2012-12-15 03:59:24 +01:00
Manu Sridharan
77b81b4181
Handle duplicate field names between subclass and superclass.
...
Patch from Christophe Foket on the mailing list.
2012-11-30 09:18:00 -05:00
Juergen Graf
9fac9e9a30
Merge branch 'wala' into master
2012-11-30 04:46:24 +01:00
Manu Sridharan
070e3989cf
fix missing detection of certain static initializer calls
...
Patch from Christophe Foket on the mailing list.
2012-11-27 14:04:00 -05:00
Manu Sridharan
821479d1a6
remove unnecessary casts
2012-11-21 11:39:25 -08:00
Juergen Graf
b82d5dba90
Merge branch 'wala' into master
2012-11-06 04:23:10 +01:00
Juergen Graf
8383eb440f
make mutable cfg an actual control flow graph
2012-11-05 21:30:59 +01:00
dolby
fae5c86114
fixes for users of JDT interfaces, such as Miniatur/MemSAT
2012-10-01 13:11:10 -04:00
Manu Sridharan
24eb803211
organize imports; no semantic change
2012-09-04 16:24:37 -07:00
Manu Sridharan
56f3d847a5
more conversion to Unix line endings
2012-09-04 15:59:50 -07:00
Manu Sridharan
256cd06460
Convert all Java source files to use Unix line endings; no semantic change
2012-09-04 15:56:05 -07:00
dolby
4cc3a08b63
comment attempting to explain how 'dimensionality' works
2012-08-31 15:45:56 -04:00
dolby
319eacc529
merge changes and changes for atomic sets work
2012-08-29 16:35:34 -04:00
Manu Sridharan
419d1d50cc
Merge branch 'github_master' and remove Eclipse dependencies.
...
Specifically, rewrite ProgressMaster to not depend on Eclipse, and move
to com.ibm.wala.util. Now, we can use timeout-based code in packages
without introducing an Eclipse dependency.
2012-08-28 12:39:52 -07:00
Manu Sridharan
06205fdb73
patch from mailing list to handle different constructor arguments for ClassLoaderImpl
2012-08-28 10:51:20 -07:00
dolby
e946d1deb9
fixes for misuse of getDimensionality
2012-08-28 12:02:48 -04:00
dolby
ffff4c244d
fix for bug in reading xml summaries
2012-08-28 11:10:46 -04:00
Manu Sridharan
bb2c45803c
Merge branch 'github_master' into internal_merge
2012-08-21 16:57:27 -07:00
Manu Sridharan
cf04da7613
handle a couple of corner cases. some (very) basic support for pointer / reference types
2012-08-21 16:56:50 -07:00
Manu Sridharan
bab4777e4c
some (very) basic support for pointer / reference types
2012-08-21 16:56:18 -07:00
Manu Sridharan
800203a71f
improved documentation
2012-08-21 16:55:30 -07:00
Juergen Graf
b8477d2144
incorporate changes from other branch
...
- basic compatibility with Java 7 (i.e., don't crash immediately)
- Added utility class for converting call graphs to JSON.
- add edgeExists CLI option to check if some edge exists in the call graph
2012-08-06 12:49:03 +02:00
Manu Sridharan
3317c1ccf6
basic compatibility with Java 7 (i.e., don't crash immediately)
2012-08-03 15:41:09 -07:00