Skip to content

Commit ceb297d

Browse files
committed
Add documentation for context-include/exclude
1 parent 331e0bc commit ceb297d

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

jbmc/src/java_bytecode/java_bytecode_language.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,9 @@ Author: Daniel Kroening, [email protected]
8181
" loaded.\n" \
8282
" --context-include i only analyze code matching specification i that\n" /* NOLINT(*) */ \
8383
" --context-exclude e does not match specification e.\n" \
84+
" All other methods are excluded, i.e. we load their\n" /* NOLINT(*) */ \
85+
" signatures and meta-information, but not their\n" /* NOLINT(*) */ \
86+
" bodies.\n" \
8487
" A specification is any prefix of a package, class\n" /* NOLINT(*) */ \
8588
" or method name, e.g. \"org.cprover.\" or\n" /* NOLINT(*) */ \
8689
" \"org.cprover.MyClass.\" or\n" \
@@ -296,7 +299,13 @@ class java_bytecode_languaget:public languaget
296299
/// IDs of such objects to symbols that store their values.
297300
std::unordered_map<std::string, object_creation_referencet> references;
298301

299-
/// If set, method bodies are only elaborated if they pass the filter
302+
/// If set, method bodies are only elaborated if they pass the filter.
303+
/// Methods that do not pass the filter are "excluded": their symbols will
304+
/// include all the meta-information that is available from the bytecode
305+
/// (parameter types, return type, accessibility etc.) but the value of the
306+
/// symbol (corresponding to the body of the method) will be replaced with the
307+
/// same kind of "return nondet null or instance of return type" body that we
308+
/// use for stubbed methods. The original method body will never be loaded.
300309
optionalt<prefix_filtert> method_context;
301310
};
302311

0 commit comments

Comments
 (0)