Comments (6)
It looks like the poll
system call exists on OS X, but its implementation is so broken that they disabled it in the select
python module. The canonical replacement for select.poll
seems to be select.kqueue
, but that's BSD-specific and won't work on Linux.
Properly fixing #4 would probably remove our use of select.poll
and eliminate this issue altogether.
from pyringe.
HI It's work with kqueue. I will try to push changes to master on evening. With this change pyringe works booth on mac os and linux.
from pyringe.
As kqueue
is BSD-specific and Linux isn't a BSD derivative, kqueue
doesn't exist on linux:
>>> import select
>>> select.kqueue
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'kqueue'
I haven't seen the code, but unless you want to lock out Linux users you'd have to supply two alternate implementations of the tempfile-based IPC.
As an alternative, I propose factoring out the approach already seen in payloads/exec_socket.py into something all parts of the debugger can use.
That would fix issue #4, #14, make resolving #2 a lot easier, and would do away with tempfile-based IO.
from pyringe.
Did this ever come to a resolution? I'd like to use pyringe on osx.
PS I just this evening received the same bug (no attribute poll)
from pyringe.
It hasn't so far. "Properly" fixing this means rewriting the IPC mechanism used for communicating with gdb, and it's not likely I'll get around to doing that.
The system build of python on os x just doesn't supply the poll
interface. The build provided by macports does, however from what people say its semantics are different. So using the macports build of python may let you work around this issue for the time being.
from pyringe.
Thanks for the tip. I recompiled my python with --with-poll and I got pyringe to connect.
Thanks for maintaining this repo!
Here's how I did it, for future readers:
brew install python --with-poll
I also had to run
sudo python -m pyringe
to get around the gdb code signing error, although I think there is another way around this.
from pyringe.
Related Issues (20)
- gdb: unrecognised option '--nh' HOT 6
- Python 3 friendly? HOT 3
- Immediate SyntaxError on attach HOT 9
- Pyringe falls over if something (GdbProxy?) reports a non-numeric version HOT 5
- Debug Symbols on Ubuntu HOT 7
- No way to set log level from debugger repl HOT 1
- Failed to automatically load symbol file HOT 1
- syntax error in libpython.py HOT 8
- attach failed HOT 1
- WindowsError: [Error 2] The system cannot find the file specified HOT 3
- attach failed with TimeoutError exception HOT 1
- ModuleNotFoundError: No module named 'inferior' HOT 2
- Git tags missing?
- Fix simple typo: currenly -> currently
- Arch Linux not supported HOT 3
- Fall back to signal injection if symbol info is partial.
- payload directory should be in setup.py as data files, not submodule
- Support for debugging other versions of cpython
- Investigate PyFrame_FastToLocals
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 pyringe.