Comments (4)
On Mon, Dec 23, 2013 at 4:49 AM, felixwilhelm [email protected]:
Hi,
the python API fails silently when the Cs object goes out of scope. I am
not sure about the best way to fix this. The del method of Cs calls
cs_close which makes a big chunk of the API unusable.
Adding a reference to Cs in each object is an easy fix, but adds an
(inacceptable) overhead to each instruction object. A better way might be
some kind of internal reference counting to ensure that cs_close is only
called when all instruction are out of scope as well.Example code:
import capstone
def test_disasm():
md = capstone.Cs(capstone.CS_ARCH_X86, capstone.CS_MODE_32)
# jmp esp
instr = md.disasm("\xff\xe4",0x10,1)[0]
print instr.reg_name(instr.operands[0].value.reg) # "esp"
return instrinstr2 = test_disasm()
print instr2.reg_name(instr2.operands[0].value.reg) # "None"If this is the desired behavior, it should be documented more clearly.
This is not a designed behavior. We will work on this, and get back to you
soon.
Thanks.
from capstone.
On Mon, Dec 23, 2013 at 10:20 AM, Nguyen Anh Quynh [email protected] wrote:
On Mon, Dec 23, 2013 at 4:49 AM, felixwilhelm [email protected]:
Hi,
the python API fails silently when the Cs object goes out of scope. I am
not sure about the best way to fix this. The del method of Cs calls
cs_close which makes a big chunk of the API unusable.
Adding a reference to Cs in each object is an easy fix, but adds an
(inacceptable) overhead to each instruction object.Btw, why adding reference to Cs adds "inacceptable overhead" to CsInsn?
Thanks.
from capstone.
On Mon, Dec 23, 2013 at 11:18 AM, Nguyen Anh Quynh [email protected] wrote:
On Mon, Dec 23, 2013 at 10:20 AM, Nguyen Anh Quynh [email protected]:
On Mon, Dec 23, 2013 at 4:49 AM, felixwilhelm [email protected]:
Hi,
the python API fails silently when the Cs object goes out of scope. I am
not sure about the best way to fix this. The del method of Cs calls
cs_close which makes a big chunk of the API unusable.
Adding a reference to Cs in each object is an easy fix, but adds an
(inacceptable) overhead to each instruction object.Btw, why adding reference to Cs adds "inacceptable overhead" to CsInsn?
Felix, i just commited a fix for this issue to "next" branch. could you
confirm it works for you?
thanks.
from capstone.
Thanks for the quick fix :). Works like a charm.
from capstone.
Related Issues (20)
- MacOS wheel only contains x86_64 version of the libcapstone.dylib despite the package claims to be universal HOT 1
- Got abnormal behavior when set CS_OPT_DETAIL_REAL without CS_OPT_ON
- Can capstone recognize fmv.w.x instruction in RISCV ? HOT 3
- HPPADisassembler.c unitialized variables
- Incorrect/Missing Python Binding for operands within the X86-64 STOS Instruction
- Ensure API is properly documented before `v6`
- Use proper versioning on CMakeLists.txt - pkgconf versions are wrong otherwise HOT 1
- [BPF] `bpf_insn` collides with `libbpf` definition. HOT 13
- Build failure on Windows with MSVC \ capstone_static.vcxproj HOT 4
- HPPADisassembler: more unitialized variables HOT 3
- cs_insn::id is always invalid value on aarch64 HOT 2
- pip install on Mac HOT 1
- skipdata doesn't work correctly from python HOT 4
- Ability to Generate Bitmasks for Specific Instruction Components? HOT 3
- x64 disassembler big endian bug
- Compiler warnings in the next branch HOT 2
- python bindings depends on setuptools HOT 3
- Remove python2 leftovers
- [AArch64] Instr. with groups `HasNEON`, don't have `HasNEONorSME` and similar assigned. HOT 25
- Release v4.0.3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from capstone.