Search code examples
simics

Is there a Python API for the Simics7 in-memory snaphsots as an alternative to the front-end processor take-snapshot?


I'm revising a large Simics Python application (RESim) to replace its dependence on reverse-execution with in-memory snapshots. While the latter versions of Simics 6 had a "VT_snapshot" api, Simics 7 only appears to have the front-end "take-snapshot" command which is not efficient. Is there, or will there be a low level python API for in memory snapshots?

Use of VT_task_snapshot results in: `NameError: name 'VT_take_snapshot' is not defined


Solution

  • Yes, the API functions are there.

    simics> api-apropos snapshot
    The string "snapshot" can be found in the following API help entries:
    
    SIM_delete_snapshot        VT_dump_snapshot
    SIM_get_snapshot_info      VT_snapshot_size_used
    SIM_is_restoring_snapshot  VT_snapshots_ignore_class
    SIM_is_restoring_state     VT_snapshots_skip_attr_restore
    SIM_list_snapshots         VT_snapshots_skip_class_restore
    SIM_restore_snapshot       exception_type_t
    SIM_take_snapshot          snapshot_error_t
    simics>