[patch]change dwarf2_start_subfile() to adapt inappropriate dir name
JuYoung Kim
j0.kim@samsung.com
Mon Nov 15 01:21:00 GMT 2010
Hello, My name is Kim, Juyoung at TmaxCore co. in south korea.
I've sent this email last week but haven't receive any reply or inform.
Today I found the email was encoded in korean and maybe you could not read it.
So, I send this mail again, and I hope you reply me as possible as you can, please.
It is about subfile for DWARF.
When you see the function dwarf2_start_subfile() in the source, there is a comment about source's file name.
Some compiler ( like RCVT3.1 ) include '/' at the end of dir name.
For example,
in case, DW_AT_name: /srcdir/list0.c
you expect
files.files[0].name: list0.h
files.files[0].dir: /srcdir
but, the DWARF made by RVCT3.1 is like this.
files.files[0].name: list0.h
files.files[0].dir: /srcdir/
then the function dwarf2_start_subfile(); make the fullname "/srcdir//list0.c"
, which result in the gdb cannot find the source's debugging information.
The function dwarf2_start_subfile() is at gdb/dwarf2read.c:8650.
The original source code is
.........
if (!IS_ABSOLUTE_PATH (filename) && dirname != NULL) {
fullname = concat (dirname, SLASH_STRING, filename, (char *)NULL);
}
else
fullname = filename;
........
I changed it as below.
........
if (!IS_ABSOLUTE_PATH (filename) && dirname != NULL) {
if (dirname[strlen(dirname)-1] == '/' || dirname[strlen(dirname)-1] == '')
fullname = concat (dirname, filename, (char *)NULL);
else fullname = concat (dirname, SLASH_STRING, filename, (char *)NULL);
}
else
fullname = filename;
..........
This is my first time to report the patch.
So please, inform me if my way of reporting is not proper.
Thanks.
More information about the Gdb-patches
mailing list