Skip to content

History / Pysvf API

Revisions

  • Update Assignment 3 API docs

    bjjwwang committed May 12, 2026
  • sync: align API docs with SVF master + SVF-Python pybind (2026-05) Refresh the C++ and Python API tables against the current upstream (SVF tip c8c6042738, SVF-Python tip bb6f3d8) so that students working on Lab-Exercise-3 / Assignment-3 do not see references to symbols that have been removed or renamed. C++ (AE-CPP-APIs.md, SVF-CPP-API.md, SVF-CPP-Z3-API.md): - AbstractStateManager.h is gone in master; methods loadValue / storeValue / getGepObjAddrs / getElementIndex / getByteOffset now live on AbstractInterpretation. In Assignment-3 those are reached via the svfStateMgr pointer, so the wiki uses svfStateMgr->getGep* / loadValue(ValVar*, ICFGNode*) / storeValue(...). - AbsExtAPI::handleMemcpy signature changed to (ValVar*, ValVar*, IntervalValue, u32_t, ICFGNode*) — no longer takes AbstractState explicitly. - getAbstractState(node) was renamed to getAbsStateFromTrace(node) in Assignment-3 (and to getAbsState(node) on the SVF library side). - SVFBasicTypes.h pinned-commit link rotted; switched to svf/include/MemoryModel/PointsTo.h. - AndersenPTA::addCopyEdge clarified as the Assignment-1 subclass override of AndersenBase::addCopyEdge. - Z3ExampleMgr renamed to Z3Examples; Z3 page links moved from Teaching-Software-Verification and yuleisui/* to the public SVF-tools/Software-Security-Analysis repo. Python (Pysvf-API.md, AE-Python-APIs.md): - pysvf.AbstractState no longer carries isAddr / getElementIndex / getGepObjAddrs / storeValue / loadValue. Rebuilt the table with the actual current pybind surface (getVar, setVar, store, load, joinWith, meetWith, widening, narrowing, getIDFromAddr, printAbstractState, inVarTo*Table, initObjVar, addToFreedAddrs, isFreedMem, the static address helpers, and the static isCmp/SwitchBranchFeasible factories). - Added a new pysvf.AbstractInterpretation section covering the helpers that absorbed AbstractStateManager (getAbsState / updateAbsState / getGepElementIndex / getGepByteOffset / getGepObjAddrs / loadValue / storeValue / getPointeeElement / getAllocaInstByteSize / getTrace / __getitem__ / __setitem__ / __contains__ / analyse / runOnModule). - Fleshed out AbstractValue / IntervalValue surface and added a small AddressValue section. - Dropped the BufOverflowHelper section: there is no such class in the pybind surface; the helpers live on AbstractExecutionHelper in Assignment-3/Python/Assignment_3_Helper.py (already covered by AE-Python-APIs.md). - AE-Python-APIs.md Lab-Exercise-3 and Assignment-3 tables: the lab still has its own AEState : AbstractState wrapper, so the lab table now refers to AbstractState directly (with a note that AEState.loadValue/storeValue are thin wrappers around store/load); the assignment table mirrors the C++ changes (svfStateMgr.getGepByteOffset, etc.) and switches the helper class name from bufOverflowHelper to AbstractExecutionHelper to match Assignment_3_Helper.py. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    bjjwwang committed May 11, 2026
  • Sync Pysvf-API.md with latest pysvf bindings - getSvfStmts() -> getSVFStmts() - isCfgEdge/isCallCfgEdge/isRetCfgEdge/isIntraCfgEdge -> isCFGEdge/isCallCFGEdge/isRetCFGEdge/isIntraCFGEdge - asIntraCfgEdge/asCallCfgEdge/asRetCfgEdge -> asIntraCFGEdge/asCallCFGEdge/asRetCFGEdge - getIcfgNode() -> getICFGNode() - getIcfg() -> getICFG() - getPagNodeNum() -> getSVFVarNum() - getGnode() -> getGNode() - getCallGraphNode() -> getCallGraphNodeByFunObj() - getCallSiteId/getSrcId/getDstId -> getCallSiteID/getSrcID/getDstID - Remove non-existent getCallSite() from CallGraphEdge - AbstractValue: joinWith/meetWith/narrowWith/widenWith -> join_with/meet_with/narrow_with/widen_with

    bjjwwang committed Mar 18, 2026
  • add one api

    bjjwwang committed Jun 18, 2025
  • sync pysvf api with cpp version

    bjjwwang committed Jun 18, 2025
  • sync pysvf api with cpp version

    bjjwwang committed Jun 18, 2025
  • sync pysvf api with cpp version

    bjjwwang committed Jun 18, 2025
  • sync with new name and add API for CallICFGNode and RetICFGNode

    @MingxiuWang MingxiuWang committed May 21, 2025
  • fix documents

    bjjwwang committed May 19, 2025
  • fix document and add python documents

    @MingxiuWang MingxiuWang committed May 12, 2025
  • add pysvf api doc

    bjjwwang committed May 7, 2025