Skip to content

Commit b60d713

Browse files
authored
Merge pull request #1488 from GaloisInc/heapster-load-files-debug
Added a new SAW command `heapster_init_env_for_files_debug`
2 parents 0d48745 + f7cdb4b commit b60d713

File tree

2 files changed

+30
-4
lines changed

2 files changed

+30
-4
lines changed

src/SAWScript/HeapsterBuiltins.hs

+21-4
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module SAWScript.HeapsterBuiltins
1717
, heapster_init_env_from_file
1818
, heapster_init_env_from_file_debug
1919
, heapster_init_env_for_files
20+
, heapster_init_env_for_files_debug
2021
, load_sawcore_from_file
2122
, heapster_get_cfg
2223
, heapster_typecheck_fun
@@ -337,14 +338,30 @@ heapster_init_env_from_file_gen _bic _opts dlevel mod_filename llvm_filename =
337338
liftIO $ tcInsertModule sc saw_mod
338339
mkHeapsterEnv dlevel saw_mod_name [llvm_mod]
339340

340-
heapster_init_env_for_files :: BuiltinContext -> Options -> String -> [String] ->
341-
TopLevel HeapsterEnv
342-
heapster_init_env_for_files _bic _opts mod_filename llvm_filenames =
341+
heapster_init_env_for_files_gen :: BuiltinContext -> Options -> DebugLevel ->
342+
String -> [String] ->
343+
TopLevel HeapsterEnv
344+
heapster_init_env_for_files_gen _bic _opts dlevel mod_filename llvm_filenames =
343345
do llvm_mods <- mapM llvm_load_module llvm_filenames
344346
sc <- getSharedContext
345347
(saw_mod, saw_mod_name) <- readModuleFromFile mod_filename
346348
liftIO $ tcInsertModule sc saw_mod
347-
mkHeapsterEnv noDebugLevel saw_mod_name llvm_mods
349+
mkHeapsterEnv dlevel saw_mod_name llvm_mods
350+
351+
heapster_init_env_for_files :: BuiltinContext -> Options -> String -> [String] ->
352+
TopLevel HeapsterEnv
353+
heapster_init_env_for_files _bic _opts mod_filename llvm_filenames =
354+
heapster_init_env_for_files_gen _bic _opts noDebugLevel
355+
mod_filename llvm_filenames
356+
357+
heapster_init_env_for_files_debug :: BuiltinContext -> Options ->
358+
String -> [String] ->
359+
TopLevel HeapsterEnv
360+
heapster_init_env_for_files_debug _bic _opts mod_filename llvm_filenames =
361+
heapster_init_env_for_files_gen _bic _opts traceDebugLevel
362+
mod_filename llvm_filenames
363+
364+
348365

349366
-- | Look up the CFG associated with a symbol name in a Heapster environment
350367
heapster_get_cfg :: BuiltinContext -> Options -> HeapsterEnv ->

src/SAWScript/Interpreter.hs

+9
Original file line numberDiff line numberDiff line change
@@ -3051,6 +3051,15 @@ primitives = Map.fromList
30513051
, " initialized with the module in the given SAW core file."
30523052
]
30533053

3054+
, prim "heapster_init_env_for_files_debug"
3055+
"String -> [String] -> TopLevel HeapsterEnv"
3056+
(bicVal heapster_init_env_for_files_debug)
3057+
Experimental
3058+
[ "Create a new Heapster environment from the named LLVM bitcode files,"
3059+
, " initialized with the module in the given SAW core file, with debug"
3060+
, " tracing turned on"
3061+
]
3062+
30543063
, prim "heapster_get_cfg"
30553064
"HeapsterEnv -> String -> TopLevel CFG"
30563065
(bicVal heapster_get_cfg)

0 commit comments

Comments
 (0)