[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-dev] Source locator fails for file paths starting with \\
|
Hi,
When stepping into printf, gdb reports the path of printf.c as follows:
\\build\\tree\\RD-2011.2_kuma\\p4root\\Xtensa\\Target-libs\\newlib\\newlib\\libc\\stdio\\printf.c
This string is unnecessarily escaped again by the MIParser in DSF, resulting in:
\\\\build\\\\tree\\\\RD-2011.2_kuma\\\\p4root\\\\Xtensa\\\\Target-libs\\\\newlib\\\\newlib\\\\libc\\\\stdio\\\\printf.c
When this string is converted into an IPath object, it is de-escaped into a path like:
//build/tree/RD-2011.2_kuma/p4root/Xtensa/Target-libs/newlib/newlib/libc/stdio/printf.c
rather than the correct path:
/build/tree/RD-2011.2_kuma/p4root/Xtensa/Target-libs/newlib/newlib/libc/stdio/printf.cDue to the extra forward slash in the beginning, source locator fails for printf.c
This is due to a bug in the MIParser for DSF, where it unnecessarily inserts extra escape chars into the strings returned by gdb.
MIParser code for CDI:
private String translateCString(FSB buffer)
...if (c == '\\') {
if (escape) { sb.append(c);
escape = false; } else {
escape = true; }
}MIParser code for DSF:
private String translateCString(FSB buffer)
...
if (c == '\\') {
if (escape) {
sb.append(c); sb.append(c); //this extra append causes the path to have extra slashes in the beginning.
escape = false;
} else {
escape = true;
}
}Should I file a bug and attach a patch to remove the extra append() call?
Thanks
Abeer Bagul
Tensilica India