{ "info": { "author": "Bertrand Janin", "author_email": "b@janin.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: ISC License (ISCL)", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.0", "Programming Language :: Python :: 3.1", "Topic :: Software Development :: Debuggers" ], "description": "rpdb - remote debugger based on pdb\n===================================\n\nrpdb is a wrapper around pdb that re-routes stdin and stdout to a socket\nhandler. By default it opens the debugger on port 4444::\n\n import rpdb; rpdb.set_trace()\n\nBut you can change that by simply instantiating Rpdb manually::\n\n import rpdb\n debugger = rpdb.Rpdb(port=12345)\n debugger.set_trace()\n\nIt is known to work on Jython 2.5 to 2.7, Python 2.5 to 3.1. It was written\noriginally for Jython since this is pretty much the only way to debug it when\nrunning it on Tomcat.\n\nUpon reaching `set_trace()`, your script will \"hang\" and the only way to get it\nto continue is to access rpdb using telnet, netcat, etc..::\n\n nc 127.0.0.1 4444\n\nInstallation in CPython (standard Python)\n-----------------------------------------\n\n pip install rpdb\n\nFor a quick, ad hoc alternative, you can copy the entire rpdb subdirectory\n(the directory directly containing the __init__.py file) to somewhere on your\n$PYTHONPATH.\n\nInstallation in a Tomcat webapp\n-------------------------------\n\nJust copy the rpdb directory (the one with the __init__.py file) in your\nWEB-INF/lib/Lib folder along with the standard Jython library (required).\n\nTrigger rpdb with signal\n------------------------\n\n`set_trace()` can be triggered at any time by using the TRAP signal handler.\nThis allows you to debug a running process independantly of a specific failure\nor breakpoint::\n\n import rpdb\n rpdb.handle_trap()\n\n # As with set_trace, you can optionally specify addr and port\n rpdb.handle_trap(\"0.0.0.0\", 54321)\n\nCalling `handle_trap` will overwrite the existing handler for SIGTRAP if one has\nalready been defined in your application.\n\nKnown bugs\n----------\n - The socket is not always closed properly so you will need to ^C in netcat\n and Esc+q in telnet to exit after a continue or quit.\n - There is a bug in Jython 2.5/pdb that causes rpdb to stop on ghost\n breakpoints after you continue ('c'), this is fixed in 2.7b1.\n\nAuthor(s)\n---------\nBertrand Janin - http://tamentis.com/\n\nWith contributions from (chronological, latest first):\n\n - Cameron Davidson-Pilon - @CamDavidsonPilon\n - Pavel Fux - @fuxpavel\n - Ken Manheimer - @kenmanheimer\n - Steven Willis - @onlynone\n - Jorge Niedbalski R \n - Cyprien Le Pann\u00e9rer \n - k4ml \n - Sean M. Collins \n - Sean Myers \n\nThis is inspired by:\n\n - http://bugs.python.org/issue721464\n - http://snippets.dzone.com/posts/show/7248\n\n\n0.1.6 (2015-01-05)\n==================\n\n - Give access to attributes of stdin and stdout (by @fuxpavel).\n - Add rpdb.post_mortem(), similar to pdb.post_mortem() (by @CamDavidsonPilon).\n\n0.1.5 (2014-10-16)\n==================\n\n - Write addr/port to stderr instead of stdout (thanks to @onlynone).\n - Allow for dynamic host port (thanks to @onlynone).\n - Make q/quit do proper cleanup (@kenmanheimer)\n - Benignly disregard repeated rpdb.set_trace() to same port as currently\n active session (@kenmanheimer)\n - Extend backwards compatibility down to Python 2.5 (@kenmanheimer)\n\n0.1.4 (2014-04-28)\n==================\n\n - Expose the addr, port arguments to the set_trace method (thanks to @niedbalski).\n\n0.1.3 (2013-08-02)\n==================\n\n - Remove a try/finally that seemed to shift the trace location (thanks to k4ml@github).\n\n0.1.2 (2012-01-26)\n==================\n\n - Catch IOError raised by print in initialization, it may not work in some\n environments (e.g. mod_wsgi). (Menno Smits)\n\n0.1.1 (2010-05-09)\n==================\n\nInitial release.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://tamentis.com/projects/rpdb", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "rpdb", "package_url": "https://pypi.org/project/rpdb/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/rpdb/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://tamentis.com/projects/rpdb" }, "release_url": "https://pypi.org/project/rpdb/0.1.6/", "requires_dist": null, "requires_python": null, "summary": "pdb wrapper with remote access via tcp socket", "version": "0.1.6" }, "last_serial": 1890375, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "4175066bf5b202fafb2312d331a58a03", "sha256": "b4d9c5230733424183f5bd6ce68912aca86e5ab40b33656afc1addb9a957d0b3" }, "downloads": -1, "filename": "rpdb-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4175066bf5b202fafb2312d331a58a03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2155, "upload_time": "2010-05-08T04:58:26", "url": "https://files.pythonhosted.org/packages/f7/a2/2144e780572687955f693eb674a0ad075a3d9989a92f6671b610781ebf4d/rpdb-0.1.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "f82b3426b679384f24d983bd8b6cd437", "sha256": "01780496a84004a4ec5f9cf0aa6457f4c28e6e3d046f7b0687cde880ae6bd9c5" }, "downloads": -1, "filename": "rpdb-0.1.1.win32.exe", "has_sig": false, "md5_digest": "f82b3426b679384f24d983bd8b6cd437", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 63358, "upload_time": "2010-05-08T04:58:28", "url": "https://files.pythonhosted.org/packages/b7/7d/044c70a4f974da5f5fc77ace9d890cd7b32ccc80c19687abe4b8f3b6aa75/rpdb-0.1.1.win32.exe" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "6c85225b448f265eedea99e3d4038011", "sha256": "a730757ee406f8cf3cfc87697c6dfec3666b1c50ece47a26722b38f480e63b5e" }, "downloads": -1, "filename": "rpdb-0.1.2.tar.gz", "has_sig": false, "md5_digest": "6c85225b448f265eedea99e3d4038011", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1555, "upload_time": "2012-01-27T16:58:48", "url": "https://files.pythonhosted.org/packages/63/c8/1cad9cf1f3cdd841444c0bf9a2ada1f6e638f52b60d8dd23e529b69bc4bc/rpdb-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "4f350f523446a9100395d41b0b05c6cb", "sha256": "4247561686ee9c5f1bb72319378c3b471743d5bdc30611117cb9a75feb34841e" }, "downloads": -1, "filename": "rpdb-0.1.3.tar.gz", "has_sig": false, "md5_digest": "4f350f523446a9100395d41b0b05c6cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2560, "upload_time": "2013-08-02T20:48:16", "url": "https://files.pythonhosted.org/packages/6c/fc/d0ce515cd01f1a1511ccd057f1f532d9314d26d750abb9255ab356ed80ae/rpdb-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "8c0e4f28018ae6a71a9baa8468bca033", "sha256": "e7231bdd2fe1736fc589a21046f1c7ca2a891394d8eb25b8b2eb131776f952e7" }, "downloads": -1, "filename": "rpdb-0.1.4.tar.gz", "has_sig": false, "md5_digest": "8c0e4f28018ae6a71a9baa8468bca033", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2652, "upload_time": "2014-04-29T01:16:58", "url": "https://files.pythonhosted.org/packages/19/1d/8e9ccb29089f7a9df1e721e18de9d38b73e02fb14e1a273847bbdc9fe264/rpdb-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "aad6c1d5f5cfdb6858e1ed2c4e72ef54", "sha256": "7305ee62417f61b3577af6a4718d419691037801be0d0828663c7e3a300c1467" }, "downloads": -1, "filename": "rpdb-0.1.5.tar.gz", "has_sig": false, "md5_digest": "aad6c1d5f5cfdb6858e1ed2c4e72ef54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3656, "upload_time": "2014-10-16T15:12:31", "url": "https://files.pythonhosted.org/packages/d1/92/3d0b5ba50f1645efe5f4ac3ada7f0acc5c52357324451314e17eb13317fb/rpdb-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "1566f936f0f381172ecf918f7a65f882", "sha256": "5d1a1cee34378ab075879dc30fa6328d448a9f680a66c4e84cac7382ad92f15f" }, "downloads": -1, "filename": "rpdb-0.1.6.tar.gz", "has_sig": false, "md5_digest": "1566f936f0f381172ecf918f7a65f882", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4316, "upload_time": "2016-01-05T22:24:39", "url": "https://files.pythonhosted.org/packages/53/b7/6663ec9c0157cf7c766bd4c9dca957ca744f0b3b16c945be7e8f8d0b2142/rpdb-0.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1566f936f0f381172ecf918f7a65f882", "sha256": "5d1a1cee34378ab075879dc30fa6328d448a9f680a66c4e84cac7382ad92f15f" }, "downloads": -1, "filename": "rpdb-0.1.6.tar.gz", "has_sig": false, "md5_digest": "1566f936f0f381172ecf918f7a65f882", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4316, "upload_time": "2016-01-05T22:24:39", "url": "https://files.pythonhosted.org/packages/53/b7/6663ec9c0157cf7c766bd4c9dca957ca744f0b3b16c945be7e8f8d0b2142/rpdb-0.1.6.tar.gz" } ] }