From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28899 invoked by alias); 15 May 2014 18:17:23 -0000 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 Received: (qmail 28853 invoked by uid 89); 15 May 2014 18:17:23 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.2 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 15 May 2014 18:17:22 +0000 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s4FIHJJG011058 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 15 May 2014 14:17:20 -0400 Received: from barimba (ovpn-113-182.phx2.redhat.com [10.3.113.182]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s4FIHIBV002729 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Thu, 15 May 2014 14:17:19 -0400 From: Tom Tromey To: Yao Qi Cc: Subject: Re: [PATCH] gdb_init argument ARGS is a string rather than a list References: <1399626515-29231-1-git-send-email-yao@codesourcery.com> Date: Thu, 15 May 2014 18:17:00 -0000 In-Reply-To: <1399626515-29231-1-git-send-email-yao@codesourcery.com> (Yao Qi's message of "Fri, 9 May 2014 17:08:35 +0800") Message-ID: <87fvkaaoup.fsf@fleche.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2014-05/txt/msg00260.txt.bz2 >>>>> "Yao" == Yao Qi writes: Yao> but GDB thinks it is a list. In default_gdb_init (callee of gdb_init), Yao> set gdb_test_file_name [file rootname [file tail [lindex $args 0]]] Yao> Fortunately, simple strings are also lists in tcl, so "[lindex $args 0]" Yao> is equivalent to "$args" if args is a string. The "args" parameter is special in Tcl. It signals a "rest" parameter and so causes a single argument to be list-ified by the interpreter: % proc l {args} { return [llength $args] } % l {a b c} 1 % proc r {a} { return [llength $a] } % r {a b c} 3 So while the current code is a bit odd, I think it is also correct-enough. Yao> - return [eval default_gdb_init $args] Yao> + return [eval default_gdb_init $test_file_name] If you want to proceed with this you will need to remove the "eval" here. Tom