Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH] sys.argv and ipython (interactive python) support in GDB/Python
@ 2011-07-01  4:00 Taisuke Yamada
       [not found] ` <BANLkTimcWKLMOkd0R8bNT-z4yqr0FJ_uog@mail.gmail.com>
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Taisuke Yamada @ 2011-07-01  4:00 UTC (permalink / raw)
  To: gdb-patches

[-- Attachment #1: Type: text/plain, Size: 793 bytes --]

Hi.

While working with GDB/Python, I wondered if I can use it
interactively by loading ipython (interactive python shell) on
top of it. However, current GDB/Python fails as it does not
initialize sys.argv properly.

So here is a patch to set sys.argv when initializing embedded
Python interpreter. I have tested it by running ipython with

  (gdb) python execfile("/usr/bin/ipython")
  Python 2.6.6 (r266:84292, Oct  9 2010, 12:40:51)
  ...
  In [1]: import gdb
  In [2]: print gdb.lookup_symbol("main")
  (<gdb.Symbol object at 0x7ff6f9815b20>, False)

It is quite nice to be able to inspect debuggee interactively
using full-featured language.

This patch should also improve compatibility with other exsiting
python libraries, as some of those expect existance of sys.argv.

Best Regards,

[-- Attachment #2: gdb-python-ipython.patch --]
[-- Type: text/x-patch, Size: 434 bytes --]

diff --git a/gdb/python/python.c b/gdb/python/python.c
index 90d5dc8..c9f2ce9 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -1010,7 +1010,9 @@ Enables or disables printing of Python stack traces."),
 			     SLASH_STRING, "python", NULL));
 #endif
 
+  char *argv[] = { "gdb", NULL };
   Py_Initialize ();
+  PySys_SetArgvEx (1, argv, 0);
   PyEval_InitThreads ();
 
   gdb_module = Py_InitModule ("gdb", GdbMethods);

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2011-07-01 14:34 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-01  4:00 [PATCH] sys.argv and ipython (interactive python) support in GDB/Python Taisuke Yamada
     [not found] ` <BANLkTimcWKLMOkd0R8bNT-z4yqr0FJ_uog@mail.gmail.com>
2011-07-01 10:31   ` Kevin Pouget
2011-07-01 10:59 ` Phil Muldoon
2011-07-01 14:10   ` Taisuke Yamada
2011-07-01 14:14     ` Phil Muldoon
2011-07-01 14:34   ` Tom Tromey
2011-07-01 14:27 ` Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox