From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13209 invoked by alias); 10 Aug 2006 16:36:52 -0000 Received: (qmail 13200 invoked by uid 22791); 10 Aug 2006 16:36:51 -0000 X-Spam-Check-By: sourceware.org Received: from brmea-mail-1.Sun.COM (HELO brmea-mail-1.sun.com) (192.18.98.31) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 10 Aug 2006 16:36:49 +0000 Received: from fe-amer-06.sun.com ([192.18.108.180]) by brmea-mail-1.sun.com (8.13.6+Sun/8.12.9) with ESMTP id k7AGalWF000650 for ; Thu, 10 Aug 2006 10:36:47 -0600 (MDT) Received: from conversion-daemon.mail-amer.sun.com by mail-amer.sun.com (Sun Java System Messaging Server 6.2-4.02 (built Sep 9 2005)) id <0J3S00E01JH4JK00@mail-amer.sun.com> (original mail from Nikolay.Molchanov@Sun.COM) for gdb@sourceware.org; Thu, 10 Aug 2006 10:36:47 -0600 (MDT) Received: from [172.16.1.35] ([69.106.253.60]) by mail-amer.sun.com (Sun Java System Messaging Server 6.2-4.02 (built Sep 9 2005)) with ESMTPSA id <0J3S00AETJHAIHL2@mail-amer.sun.com>; Thu, 10 Aug 2006 10:36:47 -0600 (MDT) Date: Thu, 10 Aug 2006 16:36:00 -0000 From: Nikolay Molchanov Subject: Re: How to set a breakpoint in file, which name has spaces? In-reply-to: <20060810125827.GA18306@nevyn.them.org> To: Daniel Jacobowitz Cc: gdb@sourceware.org Reply-to: Nikolay.Molchanov@Sun.COM Message-id: <44DB6093.4030905@sun.com> MIME-version: 1.0 Content-type: text/plain; format=flowed; charset=ISO-8859-1 Content-transfer-encoding: 7BIT References: <44D832EE.2040405@sun.com> <44D8E404.5050407@Sun.COM> <44D98D66.9060202@sun.com> <44DAD087.30004@sun.com> <20060810125827.GA18306@nevyn.them.org> User-Agent: Mozilla Thunderbird 1.0.7 (Windows/20050923) Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2006-08/txt/msg00086.txt.bz2 Daniel, >On Wed, Aug 09, 2006 at 11:21:59PM -0700, Nikolay Molchanov wrote: > > >>Hello! >> >>There seems to be a problem with setting a breakpoint in files, >>which names have spaces (usually it happens on Windows, but it >>is possible to create such files in Unix filesystems as well). >> >>Here is a part of a log file, that shows the problem. >>Note that '\ ' works just great in "-file-exec-and-symbols" command, >>but does not work in "-break-insert" command. >> >> > >Quoting in the MI interface is generally inconsistent. If you care, >you can find a somewhat more detailed summary of the problems in the >archives a few months ago. > > I would be happy to take a look at the discussion. IMHO a good solution is to use '\ ' to escape spaces. It is standard Unix approach. The real '\' character should be passed as double '\' ("\\"). What is nice, it works just great in "-file-exec-and-symbols" command, so it seems a pretty straight forward solution to make other commands consistent with this one. > > >>221-break-insert C:/Documents\ and\ >>Settings/nikm/.netbeans/Netbeans\ Projects/Args1/src/main.c:17 >>&"mi_cmd_break_insert: Garbage following \n" >>221^error,msg="mi_cmd_break_insert: Garbage following " >>(gdb) >> >>I tried to use single and double quotes, but still no luck. >>Is it a known problem? Is there a workaround? >> >> > >Let's see. For current versions of GDB, -break-insert is parsed as a >true MI command, which means it passes through the MI quoting rules. >That's described in the GDB manual (GDB/MI Input Syntax). It says that >single quotes and backslashes aren't special, only double quotes, and >within double quotes things are treated as a C string. Then, after >that escaping, it is passed to the normal breakpoint code. > >So if you want to simulate: > break 'C:/Documents and Settings/foo.c':17 > > Unfortunately this does not work: break 'C:/Documents and Settings/nikm/.netbeans/Netbeans Projects/Args1/src/main.c':17 &"break 'C:/Documents and Settings/nikm/.netbeans/Netbeans Projects/Args1/src/main.c':17\n" &"Function \"C:/Documents and Settings/nikm/.netbeans/Netbeans Projects/Args1/src/main.c\" not defined.\n" ~"Breakpoint 3 ('C:/Documents and Settings/nikm/.netbeans/Netbeans Projects/Args1/src/main.c':17) pending.\n" ^done (gdb) >You'd need > -break-insert "'C:/Documents and Settings/foo.c':17" > >This is actually more or less how things are supposed to work. > > And this one also does not work: 221-break-insert "'C:/Documents and Settings/nikm/.netbeans/Netbeans Projects/Args1/src/main.c':17" &"Function \"C:/Documents and Settings/nikm/.netbeans/Netbeans Projects/Args1/src/main.c\" not defined.\n" 221^done (gdb)