mirror of
https://github.com/Vita3K/unicorn.git
synced 2025-02-12 23:58:39 +00:00
![Fish](/assets/img/avatar_default.png)
This commit fixes the following issues: - Any unmapped/free'd memory regions (MemoryRegion instances) are not removed from the object property linked list of its owner (which is always qdev_get_machine(uc)). This issue makes adding new memory mapping by calling mem_map() or mem_map_ptr() slower as more and more memory pages are mapped and unmapped - yes, even if those memory pages are unmapped, they still impact the speed of future memory page mappings due to this issue. - FlatView is not reconstructed after a memory region is freed during unmapping, which leads to a use-after-free the next time a new memory region is mapped in address_space_update_topology().
Unicorn Engine
Unicorn is a lightweight, multi-platform, multi-architecture CPU emulator framework based on QEMU.
Unicorn offers some unparalleled features:
- Multi-architecture: ARM, ARM64 (ARMv8), M68K, MIPS, SPARC, and X86 (16, 32, 64-bit)
- Clean/simple/lightweight/intuitive architecture-neutral API
- Implemented in pure C language, with bindings for Perl, Rust, Ruby, Python, Java, MSVC, .NET, Go, Delphi/Free Pascal and Haskell.
- Native support for Windows & *nix (with Mac OSX, Linux, *BSD & Solaris confirmed)
- High performance via Just-In-Time compilation
- Support for fine-grained instrumentation at various levels
- Thread-safety by design
- Distributed under free software license GPLv2
Further information is available at http://www.unicorn-engine.org
License
This project is released under the GPL license.
Compilation & Docs
See docs/COMPILE.md file for how to compile and install Unicorn.
More documentation is available in docs/README.md.
Contact
Contact us via mailing list, email or twitter for any questions.
Contribute
If you want to contribute, please pick up something from our Github issues.
We also maintain a list of more challenged problems in a TODO list.
CREDITS.TXT records important contributors of our project.
Description
Languages
C
86.2%
Python
4.1%
Java
2.4%
Visual Basic 6.0
1.2%
Pascal
1.2%
Other
4.8%