[RFA] 12843

Keith Seitz keiths@redhat.com
Thu Aug 25 21:59:00 GMT 2011


Hi,

A long time ago, some linespec hacking that I did broke the ability to 
use drive letters on Windows. This turned out especially bad since 
linespec canonicalization could unexpectedly (to the user) include them. 
As a result, gdb was/is unable to re-set some breakpoints on Windows hosts.

This is a pretty simple patch to workaround this problem. It is not 
perfect, but implementing something "proper" would be very involved, and 
I am not quite sure I want to commit to hacking more of linespec.c 
without rewriting the whole thing (which would certainly interfer with 
Tom's ambiguous linespec work).

So I'm not sure whether this should be an RFC or and RFA, but I've 
decided the later.

This patch checks if ':' is followed by '/' and/or '\\' (depending on 
definition of IS_DIR_SEPARATOR). If it is, we keep looking for the next 
terminal in the string. This is problematic for filenames with ":\\" or 
"://" in them, but locate_first_half has gotten those wrong for a long, 
long time (in fact, any filename at all with a colon(s) in it).

In any case, this patch will allow Windows hosts to function properly 
again, and causes no regressions on x86_64-linux and i686-pc-cygwin32.

Keith

ChangeLog
2011-08-25  Keith Seitz  <keiths@redhat.com>

	PR gdb/12843
	* linespec.c (locate_first_half): Do not stop on a colon
	if the next character is a directory separator character.

testsuite/ChangeLog
2011-08-25  Keith Seitz  <keiths@redhat.com>

	PR gdb/12843
	* gdb.base/ls-driveletter.exp: New file.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 12843.patch
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20110825/4ba7315c/attachment.ksh>


More information about the Gdb-patches mailing list