Pyringe: Debugger capable of attaching to and injecting into Python processes
github.com
github.com
* https://github.com/albertz/pydbattach (my own :))
* PyInjector (don't find a good link right now)
* I'm quite sure I have seen at least one other similar project here on HN a while ago, but I don't remember the name...
Humour aside, in 10-15 years time I expect it to be considered strange not to have hot-swap features in production languages.
The speed boost from LLVM, SSDs, the "thin" nature of iOS apps, and the bump in processor performance was, per my intuition, enough that a typical "full" build today can handily beat a typical "Fix-and-Continue" build from a few years ago (I use the term "full" to mean a build that updates one or two compilation units and re-links).
It was a nifty feature and I wish they'd bring it back, but I'm pretty sure the XCode team has lower-hanging fruit (static analysis, code navigation, refactoring).
So it's not "Google's Pyringe".
We have interesting code samples such as capturing video intercepting DirectX[2] and hooking into SQL Server to abort unsecure (e.g. injection attacks) queries[3].
1. http://www.nektra.com/products/deviare-api-hook-windows/devi...
2. http://blog.nektra.com/main/2013/07/23/instrumenting-direct3...
3. http://blog.nektra.com/main/2013/06/26/sql-server-intercepti...
I found an old copy of MobileSubstrate that has partial support for i386 and x86_64 (which works fine on Linux since the ABI is the same as Mac). I found out that it doesn't support all the possible jumps in the overwritten area. I've been slowly patching and improving it[0] but I'd rather be spending my time hooking stuff than writing the hooker.
In the meantime have you tried to ask these kind of questions in http://reverseengineering.stackexchange.com/
Pyringe first gets to a safe place before injecting by (essentially) faking the delivery of a signal, then waiting for python-level signal handler dispatch to trigger. By doing so, it ensures the interpreter first gets itself into a state in which it can execute arbitrary python code before performing the injection.
Pyrasite has a bunch of features pyringe doesn't, though.
http://duschkumpane.org/index.php/mmbbq
It's not what is posted here, just what I thought it was going to be.