From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30995 invoked by alias); 1 Jul 2011 10:59:37 -0000 Received: (qmail 30987 invoked by uid 22791); 1 Jul 2011 10:59:37 -0000 X-SWARE-Spam-Status: No, hits=-6.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,TW_RG,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 01 Jul 2011 10:59:21 +0000 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p61AxJ83000405 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 1 Jul 2011 06:59:19 -0400 Received: from localhost.localdomain (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p61AxHax031826; Fri, 1 Jul 2011 06:59:18 -0400 From: Phil Muldoon To: Taisuke Yamada Cc: gdb-patches@sourceware.org Subject: Re: [PATCH] sys.argv and ipython (interactive python) support in GDB/Python References: Reply-to: pmuldoon@redhat.com X-URL: http://www.redhat.com Date: Fri, 01 Jul 2011 10:59:00 -0000 In-Reply-To: (Taisuke Yamada's message of "Fri, 1 Jul 2011 13:00:27 +0900") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-07/txt/msg00009.txt.bz2 Taisuke Yamada writes: Thanks for the patch! > 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 }; As Kevin noted, this needs to be placed in the declarations part of the function. > Py_Initialize (); > + PySys_SetArgvEx (1, argv, 0); This can throw an error. Though, it seems unlikely it would. I'm also a little confused about the documentation about PySys_SetArgvEx. "These parameters are similar to those passed to the program's main() function with the difference that the first entry should refer to the script file to be executed rather than the executable hosting the Python interpreter. If there isn't a script that will be run, the first entry in argv can be an empty string. If this function fails to initialize sys.argv, a fatal condition is signalled using Py_FatalError()." Isn't your first argument of argv the executable GDB? I should know this, but the documentation notes "New in version 2.6.6". I think we support 2.6.6, but one of the maintainers would have to reply here. Lastly, even though this patch is about two lines, I believe it is not a trivial change, and probably needs a ChangeLog entry. Cheers, Phil