1
0
mirror of https://github.com/angr/angr synced 2026-06-08 13:09:39 +00:00
Commit Graph

3 Commits

Author SHA1 Message Date
Fish 5ee75140ff Dev: Switch from black to ruff format. (#6097)
* Dev: Switch from black to ruff format.

* Reformat all the files.
2026-02-05 14:29:21 -07:00
pre-commit-ci[bot] 563fb5f862 [pre-commit.ci] pre-commit autoupdate (#6025)
* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.14.11 → v0.14.13](https://github.com/astral-sh/ruff-pre-commit/compare/v0.14.11...v0.14.13)
- [github.com/psf/black-pre-commit-mirror: 25.12.0 → 26.1.0](https://github.com/psf/black-pre-commit-mirror/compare/25.12.0...26.1.0)

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-01-19 13:37:06 -07:00
Fish a31f3df8f7 FunctionManager: Spill to external storage. (#5976)
* FunctionManager: Spill to external storage.

* Remove atexit registration. Reduce map size.

* Introduce FuncNode in function graphs; Fix multiple issues with SpillingFunctionDict.

* Implement Function.dirty.

* A bit more optimization.

* FunctionManager loads only meta data for functions when graphs are not accessed; Save .info for functions.

* Only load meta data for Functions in more places.

* Remove FunctionManager.block_map because it's never really used.

* Retire blockaddr_to_function and replace it with blockaddr_to_funcaddr.

* More optimizations and fixes.

* More refactor and fixes.

* More optimizations.

* Fix the bug in lmdb spilling after raising MapFullError.

* Introduce RuntimeDb in KB. Migrate SpillingFunctionsDict to use RuntimeDb.

* Prioritize the basedir of the main executable for the runtime db path.

* Cache non-returning function addrs, unknown-returning function addrs, and function block count in FunctionManager.

* Bug fixes.

* Fix a bug in FunctionParser.

* CFGBase.make_functions: Copy over function metadata when creating functions in the first place.

* Update MockFunctionManager.

* Type check codenode.py and fix an RDA test case.

* Fix serialization tests; Introduce KnowledgeBasePlugin.set_kb(); SpillingFunctionDict now derives from UserDict; Fix KB.name stored in KB._plugins; Fix FunctionDict.__setstate__ swapping Function objects and function addresses.

* Update FactCollector to support FuncNode.

* FunctionInfo: Update Function.dirty and perform type checks on keys and values.

* Make function cache limit configurable.

* Adjust FunctionInfo type check.

* More fixes.

* More updates to account for FuncNode in function graphs.

* Update a test case.

* Fix another test case (do not use the size of FuncNodes).

* Fix Reassembler.

* CFGBase.make_functions: Add a missing insertion to _updated_nonreturning_functions.

* Update FunctionManager.rebuild_callgraph.

* FunctionParser: Call destinations must be FuncNodes.

* Serialize Function.is_default_name.

* Minor fixes.

* Fix CFunctionCall._is_target_ambiguous.

* Mark evicted Function instances as evicted.

* HashLookupAPIDeobfuscator: Take a list of function addresses instead of Function instances as arg.

* CC_NAMES: Fix the bug of missing SimCCCdecl.

* FunctionParser: Fix missing syscall function nodes.

* HookNode: Take a SimProcedure instance instead of the class as the sim_procedure argument.

* FunctionParser: Consider return-type edges when deserializing.

* SimTypeCppFunction: Fix to_json() serialization crash.

* FunctionParser: Fix missing return sites.

* Function.is_{syscall,simprocedure,alignment,plt} settings should mark the function dirty.

* RDA: Do not create blocks for FuncNodes or HookNodes.

* Update a test case.

* Fix issues with SimCppClass.to_json.

* HookNode: Fix HookNode.__eq__.

* Fix SootFunction.

* Lint function_manager.py.

* Lint and type check.

* More docs; Spill Function.ran_cca.

* RuntimeDb: Support specifying base dir using an environment variable.

* Lint and fix test cases.
2026-01-12 19:58:18 -07:00