This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFA] 12843


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.

Attachment: 12843.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]