Try using $PWD/test.cpp on the clang command line. I am seeing the duplicate
DIFile entries, but not yet able to reproduce a .debug_line section with
multiple directory entries.
--paulr
From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of Tomar,
Sourabh Singh via llvm-dev
Sent: Tuesday, September 1, 2020 1:07 PM
To: Umesh Kalappa <umesh.kalappa0 at gmail.com>; cfe-dev at lists.llvm.org
Developers <cfe-dev at lists.llvm.org>
Cc: llvm-dev at lists.llvm.org
Subject: Re: [llvm-dev] Filename's in DIBuileder
[AMD Official Use Only - Internal Distribution Only]
Didn't observed this on trunk(Using attached test.cpp): Trunk at
29ae4485950ed76faa94dabbd13bbe91d2b5c750
$clang++ -std=c++14 -g test.cpp -c -S -emit-llvm -o - | awk /DIFile/
!3 = !DIFile(filename: "test.cpp", directory: "/home/")
$ clang++ -std=c++14 -g test.cpp -c -o - | llvm-dwarfdump -debug-line -
[...]
file_names[ 1]:
name: "test.cpp"
dir_index: 0
mod_time: 0x00000000
length: 0x00000000
[...]
Did I missed something, while reproducing ? ?
--Sourabh
From: llvm-dev <llvm-dev-bounces at lists.llvm.org<mailto:llvm-dev-bounces
at lists.llvm.org>> On Behalf Of Umesh Kalappa via llvm-dev
Sent: Tuesday, September 1, 2020 9:50 PM
To: LLVM Developers Mailing List <llvm-dev at
lists.llvm.org<mailto:llvm-dev at lists.llvm.org>>; cfe-dev at
lists.llvm.org<mailto:cfe-dev at lists.llvm.org> Developers <cfe-dev at
lists.llvm.org<mailto:cfe-dev at lists.llvm.org>>
Subject: [llvm-dev] Filename's in DIBuileder
[CAUTION: External Email]
Hi All ,
We have a scenario in our debugger to handle the file index in the debug_ine
info like
$llvm-dwarfdump -debug-line test.o
file_names[ 1]:
name: "test.cpp"
dir_index: 0
mod_time: 0x00000000
length: 0x00000000
file_names[ 2]:
name: "test.cpp"
dir_index: 1
mod_time: 0x00000000
length: 0x00000000
Address Line Column File ISA Discriminator Flags
------------------ ------ ------ ------ --- ------------- -------------
0x0000000000000000 12 0 1 0 0 is_stmt
0x0000000000000008 13 1 1 0 0 is_stmt prologue_end
0x0000000000000010 16 0 1 0 0 is_stmt
0x0000000000000018 17 1 1 0 0 is_stmt prologue_end
0x0000000000000020 20 0 1 0 0 is_stmt
0x0000000000000028 21 9 1 0 0 is_stmt prologue_end
0x000000000000002f 22 9 1 0 0 is_stmt
0x0000000000000032 22 10 1 0 0
0x0000000000000035 22 7 1 0 0
0x000000000000003c 23 1 1 0 0 is_stmt
0x0000000000000040 25 0 1 0 0 is_stmt
0x0000000000000044 25 13 1 0 0 is_stmt prologue_end
0x0000000000000080 0 0 2 0 0 is_stmt
0x000000000000008b 0 0 2 0 0 is_stmt end_sequence
the debug info is emitted by the DIBuilder like
!3 = !DIFile(filename: "/folk/tmp/test/test.cpp", directory:
"/folk/tmp/test")
!45 = distinct !DISubprogram(linkageName: "_GLOBAL__sub_I_test.cpp",
scope: !3, file: !3, type: !46, flags: DIFlagArtificial, spFlags:
DISPFlagLocalToUnit | DISPFlagDefinition, unit: !2, retainedNodes: !4)
!8 = !DIFile(filename: "test.cpp", directory:
"/folk/tmp/test")
!16 = !DISubprogram(name: "proc", linkageName:
"_ZN4test4procEv", scope: !9, file: !8, line: 8, type: !12, scopeLine:
8, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0)
Latest clang trunk used like
$clang -std=c++14 -g -eimit-llvm -S /folk/tmp/test/test.cpp
and the respective files like test.cc ,test.ll and test.s are attached in the
mail for the reference.
the scenario is that why the file-name 's are different is both cases
,where "ZN4test4procEv" is the user defined function and
"_GLOBAL__sub_I_test.cpp"
is generated for the static initialisation ,which leads to the two file index
like 1 and 2 for two files in the filename table ,that confuse our debugger .
So we like to hear from experts here ,before we investigate the DIBuilder to
fix the same.
Thank you
~Umesh
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20200901/3dc48f73/attachment.html>
Aha. The two DIFile entries are describing the same file two different ways,
but the file-tracking is not noticing that the two descriptions are equivalent.
And I am convinced it is because the compilation command uses an absolute path.
This could be a failure to deduplicate the file entries in the frontend, or a
similar failure in MC once it starts handing out file numbers. (Possibly both!)
Umesh, could you file a bug for this (at https://bugs.llvm.org) please? Use
product "libraries" component "DebugInfo" and the right
people will see it. (It is quite possibly my fault...) This might be a
duplicate of an existing bug, but we can figure that out later.
Thanks!
--paulr
From: cfe-dev <cfe-dev-bounces at lists.llvm.org> On Behalf Of Robinson,
Paul via cfe-dev
Sent: Tuesday, September 1, 2020 1:10 PM
To: Tomar, Sourabh Singh <SourabhSingh.Tomar at amd.com>; Umesh Kalappa
<umesh.kalappa0 at gmail.com>; cfe-dev at lists.llvm.org Developers
<cfe-dev at lists.llvm.org>; 'llvm-dev at lists.llvm.org'
<llvm-dev at lists.llvm.org>
Subject: Re: [cfe-dev] [llvm-dev] Filename's in DIBuileder
Try using $PWD/test.cpp on the clang command line. I am seeing the duplicate
DIFile entries, but not yet able to reproduce a .debug_line section with
multiple directory entries.
--paulr
From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of Tomar,
Sourabh Singh via llvm-dev
Sent: Tuesday, September 1, 2020 1:07 PM
To: Umesh Kalappa <umesh.kalappa0 at gmail.com>; cfe-dev at lists.llvm.org
Developers <cfe-dev at lists.llvm.org>
Cc: llvm-dev at lists.llvm.org
Subject: Re: [llvm-dev] Filename's in DIBuileder
[AMD Official Use Only - Internal Distribution Only]
Didn't observed this on trunk(Using attached test.cpp): Trunk at
29ae4485950ed76faa94dabbd13bbe91d2b5c750
$clang++ -std=c++14 -g test.cpp -c -S -emit-llvm -o - | awk /DIFile/
!3 = !DIFile(filename: "test.cpp", directory: "/home/")
$ clang++ -std=c++14 -g test.cpp -c -o - | llvm-dwarfdump -debug-line -
[...]
file_names[ 1]:
name: "test.cpp"
dir_index: 0
mod_time: 0x00000000
length: 0x00000000
[...]
Did I missed something, while reproducing ? ?
--Sourabh
From: llvm-dev <llvm-dev-bounces at lists.llvm.org<mailto:llvm-dev-bounces
at lists.llvm.org>> On Behalf Of Umesh Kalappa via llvm-dev
Sent: Tuesday, September 1, 2020 9:50 PM
To: LLVM Developers Mailing List <llvm-dev at
lists.llvm.org<mailto:llvm-dev at lists.llvm.org>>; cfe-dev at
lists.llvm.org<mailto:cfe-dev at lists.llvm.org> Developers <cfe-dev at
lists.llvm.org<mailto:cfe-dev at lists.llvm.org>>
Subject: [llvm-dev] Filename's in DIBuileder
[CAUTION: External Email]
Hi All ,
We have a scenario in our debugger to handle the file index in the debug_ine
info like
$llvm-dwarfdump -debug-line test.o
file_names[ 1]:
name: "test.cpp"
dir_index: 0
mod_time: 0x00000000
length: 0x00000000
file_names[ 2]:
name: "test.cpp"
dir_index: 1
mod_time: 0x00000000
length: 0x00000000
Address Line Column File ISA Discriminator Flags
------------------ ------ ------ ------ --- ------------- -------------
0x0000000000000000 12 0 1 0 0 is_stmt
0x0000000000000008 13 1 1 0 0 is_stmt prologue_end
0x0000000000000010 16 0 1 0 0 is_stmt
0x0000000000000018 17 1 1 0 0 is_stmt prologue_end
0x0000000000000020 20 0 1 0 0 is_stmt
0x0000000000000028 21 9 1 0 0 is_stmt prologue_end
0x000000000000002f 22 9 1 0 0 is_stmt
0x0000000000000032 22 10 1 0 0
0x0000000000000035 22 7 1 0 0
0x000000000000003c 23 1 1 0 0 is_stmt
0x0000000000000040 25 0 1 0 0 is_stmt
0x0000000000000044 25 13 1 0 0 is_stmt prologue_end
0x0000000000000080 0 0 2 0 0 is_stmt
0x000000000000008b 0 0 2 0 0 is_stmt end_sequence
the debug info is emitted by the DIBuilder like
!3 = !DIFile(filename: "/folk/tmp/test/test.cpp", directory:
"/folk/tmp/test")
!45 = distinct !DISubprogram(linkageName: "_GLOBAL__sub_I_test.cpp",
scope: !3, file: !3, type: !46, flags: DIFlagArtificial, spFlags:
DISPFlagLocalToUnit | DISPFlagDefinition, unit: !2, retainedNodes: !4)
!8 = !DIFile(filename: "test.cpp", directory:
"/folk/tmp/test")
!16 = !DISubprogram(name: "proc", linkageName:
"_ZN4test4procEv", scope: !9, file: !8, line: 8, type: !12, scopeLine:
8, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0)
Latest clang trunk used like
$clang -std=c++14 -g -eimit-llvm -S /folk/tmp/test/test.cpp
and the respective files like test.cc ,test.ll and test.s are attached in the
mail for the reference.
the scenario is that why the file-name 's are different is both cases
,where "ZN4test4procEv" is the user defined function and
"_GLOBAL__sub_I_test.cpp"
is generated for the static initialisation ,which leads to the two file index
like 1 and 2 for two files in the filename table ,that confuse our debugger .
So we like to hear from experts here ,before we investigate the DIBuilder to
fix the same.
Thank you
~Umesh
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20200901/e4d0bb10/attachment.html>
Tomar, Sourabh Singh via llvm-dev
2020-Sep-01 17:40 UTC
[llvm-dev] Filename's in DIBuileder
[AMD Official Use Only - Internal Distribution Only]
Thanks Paul.
It's reproducible both DIFile and debug_line(multiple directory entries).
$tot-clang++ -g $PWD/test.cpp -c -o - | llvm-dwarfdump -debug-line -
[...]
include_directories[ 1] = "/home/"
file_names[ 1]:
name: "test.cpp"
dir_index: 0
mod_time: 0x00000000
length: 0x00000000
file_names[ 2]:
name: "test.cpp"
dir_index: 1
mod_time: 0x00000000
length: 0x00000000
[...]
--Sourabh
From: Robinson, Paul <paul.robinson at sony.com>
Sent: Tuesday, September 1, 2020 10:40 PM
To: Tomar, Sourabh Singh <SourabhSingh.Tomar at amd.com>; Umesh Kalappa
<umesh.kalappa0 at gmail.com>; cfe-dev at lists.llvm.org Developers
<cfe-dev at lists.llvm.org>; 'llvm-dev at lists.llvm.org'
<llvm-dev at lists.llvm.org>
Subject: RE: [llvm-dev] Filename's in DIBuileder
[CAUTION: External Email]
Try using $PWD/test.cpp on the clang command line. I am seeing the duplicate
DIFile entries, but not yet able to reproduce a .debug_line section with
multiple directory entries.
--paulr
From: llvm-dev <llvm-dev-bounces at lists.llvm.org<mailto:llvm-dev-bounces
at lists.llvm.org>> On Behalf Of Tomar, Sourabh Singh via llvm-dev
Sent: Tuesday, September 1, 2020 1:07 PM
To: Umesh Kalappa <umesh.kalappa0 at gmail.com<mailto:umesh.kalappa0 at
gmail.com>>; cfe-dev at lists.llvm.org<mailto:cfe-dev at
lists.llvm.org> Developers <cfe-dev at lists.llvm.org<mailto:cfe-dev at
lists.llvm.org>>
Cc: llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
Subject: Re: [llvm-dev] Filename's in DIBuileder
[AMD Official Use Only - Internal Distribution Only]
Didn't observed this on trunk(Using attached test.cpp): Trunk at
29ae4485950ed76faa94dabbd13bbe91d2b5c750
$clang++ -std=c++14 -g test.cpp -c -S -emit-llvm -o - | awk /DIFile/
!3 = !DIFile(filename: "test.cpp", directory: "/home/")
$ clang++ -std=c++14 -g test.cpp -c -o - | llvm-dwarfdump -debug-line -
[...]
file_names[ 1]:
name: "test.cpp"
dir_index: 0
mod_time: 0x00000000
length: 0x00000000
[...]
Did I missed something, while reproducing ? ?
--Sourabh
From: llvm-dev <llvm-dev-bounces at lists.llvm.org<mailto:llvm-dev-bounces
at lists.llvm.org>> On Behalf Of Umesh Kalappa via llvm-dev
Sent: Tuesday, September 1, 2020 9:50 PM
To: LLVM Developers Mailing List <llvm-dev at
lists.llvm.org<mailto:llvm-dev at lists.llvm.org>>; cfe-dev at
lists.llvm.org<mailto:cfe-dev at lists.llvm.org> Developers <cfe-dev at
lists.llvm.org<mailto:cfe-dev at lists.llvm.org>>
Subject: [llvm-dev] Filename's in DIBuileder
[CAUTION: External Email]
Hi All ,
We have a scenario in our debugger to handle the file index in the debug_ine
info like
$llvm-dwarfdump -debug-line test.o
file_names[ 1]:
name: "test.cpp"
dir_index: 0
mod_time: 0x00000000
length: 0x00000000
file_names[ 2]:
name: "test.cpp"
dir_index: 1
mod_time: 0x00000000
length: 0x00000000
Address Line Column File ISA Discriminator Flags
------------------ ------ ------ ------ --- ------------- -------------
0x0000000000000000 12 0 1 0 0 is_stmt
0x0000000000000008 13 1 1 0 0 is_stmt prologue_end
0x0000000000000010 16 0 1 0 0 is_stmt
0x0000000000000018 17 1 1 0 0 is_stmt prologue_end
0x0000000000000020 20 0 1 0 0 is_stmt
0x0000000000000028 21 9 1 0 0 is_stmt prologue_end
0x000000000000002f 22 9 1 0 0 is_stmt
0x0000000000000032 22 10 1 0 0
0x0000000000000035 22 7 1 0 0
0x000000000000003c 23 1 1 0 0 is_stmt
0x0000000000000040 25 0 1 0 0 is_stmt
0x0000000000000044 25 13 1 0 0 is_stmt prologue_end
0x0000000000000080 0 0 2 0 0 is_stmt
0x000000000000008b 0 0 2 0 0 is_stmt end_sequence
the debug info is emitted by the DIBuilder like
!3 = !DIFile(filename: "/folk/tmp/test/test.cpp", directory:
"/folk/tmp/test")
!45 = distinct !DISubprogram(linkageName: "_GLOBAL__sub_I_test.cpp",
scope: !3, file: !3, type: !46, flags: DIFlagArtificial, spFlags:
DISPFlagLocalToUnit | DISPFlagDefinition, unit: !2, retainedNodes: !4)
!8 = !DIFile(filename: "test.cpp", directory:
"/folk/tmp/test")
!16 = !DISubprogram(name: "proc", linkageName:
"_ZN4test4procEv", scope: !9, file: !8, line: 8, type: !12, scopeLine:
8, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0)
Latest clang trunk used like
$clang -std=c++14 -g -eimit-llvm -S /folk/tmp/test/test.cpp
and the respective files like test.cc ,test.ll and test.s are attached in the
mail for the reference.
the scenario is that why the file-name 's are different is both cases
,where "ZN4test4procEv" is the user defined function and
"_GLOBAL__sub_I_test.cpp"
is generated for the static initialisation ,which leads to the two file index
like 1 and 2 for two files in the filename table ,that confuse our debugger .
So we like to hear from experts here ,before we investigate the DIBuilder to
fix the same.
Thank you
~Umesh
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20200901/214cf1a0/attachment.html>
Tomar, Sourabh Singh via llvm-dev
2020-Sep-01 18:04 UTC
[llvm-dev] Filename's in DIBuileder
[AMD Official Use Only - Internal Distribution Only]
CC: LLVM-list
This behavior(line table entries) is not seen with "C" test case:
$tot-clang -g $PWD/main.c -emit-llvm -S -o - | awk /DIFile/
!1 = !DIFile(filename: "/home/main.c", directory: "/home/")
!8 = !DIFile(filename: "main.c", directory: "/home/")
$tot-clang -g $PWD/main.c -c -o - | llvm-dwarfdump -debug-line -
[...]
file_names[ 1]:
name: "main.c"
dir_index: 0
mod_time: 0x00000000
length: 0x00000000
[...]
--Sourabh
From: llvm-dev <llvm-dev-bounces at lists.llvm.org<mailto:llvm-dev-bounces
at lists.llvm.org>> On Behalf Of Tomar, Sourabh Singh via llvm-dev
Sent: Tuesday, September 1, 2020 11:10 PM
To: Robinson, Paul <paul.robinson at sony.com<mailto:paul.robinson at
sony.com>>
Cc: llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>; cfe-dev
at lists.llvm.org<mailto:cfe-dev at lists.llvm.org> Developers <cfe-dev
at lists.llvm.org<mailto:cfe-dev at lists.llvm.org>>
Subject: Re: [llvm-dev] Filename's in DIBuileder
[CAUTION: External Email]
[AMD Official Use Only - Internal Distribution Only]
Thanks Paul.
It's reproducible both DIFile and debug_line(multiple directory entries).
$tot-clang++ -g $PWD/test.cpp -c -o - | llvm-dwarfdump -debug-line -
[...]
include_directories[ 1] = "/home/"
file_names[ 1]:
name: "test.cpp"
dir_index: 0
mod_time: 0x00000000
length: 0x00000000
file_names[ 2]:
name: "test.cpp"
dir_index: 1
mod_time: 0x00000000
length: 0x00000000
[...]
--Sourabh
From: Robinson, Paul <paul.robinson at sony.com<mailto:paul.robinson at
sony.com>>
Sent: Tuesday, September 1, 2020 10:40 PM
To: Tomar, Sourabh Singh <SourabhSingh.Tomar at
amd.com<mailto:SourabhSingh.Tomar at amd.com>>; Umesh Kalappa
<umesh.kalappa0 at gmail.com<mailto:umesh.kalappa0 at gmail.com>>;
cfe-dev at lists.llvm.org<mailto:cfe-dev at lists.llvm.org> Developers
<cfe-dev at lists.llvm.org<mailto:cfe-dev at lists.llvm.org>>;
'llvm-dev at lists.llvm.org' <llvm-dev at
lists.llvm.org<mailto:llvm-dev at lists.llvm.org>>
Subject: RE: [llvm-dev] Filename's in DIBuileder
[CAUTION: External Email]
Try using $PWD/test.cpp on the clang command line. I am seeing the duplicate
DIFile entries, but not yet able to reproduce a .debug_line section with
multiple directory entries.
--paulr
From: llvm-dev <llvm-dev-bounces at lists.llvm.org<mailto:llvm-dev-bounces
at lists.llvm.org>> On Behalf Of Tomar, Sourabh Singh via llvm-dev
Sent: Tuesday, September 1, 2020 1:07 PM
To: Umesh Kalappa <umesh.kalappa0 at gmail.com<mailto:umesh.kalappa0 at
gmail.com>>; cfe-dev at lists.llvm.org<mailto:cfe-dev at
lists.llvm.org> Developers <cfe-dev at lists.llvm.org<mailto:cfe-dev at
lists.llvm.org>>
Cc: llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
Subject: Re: [llvm-dev] Filename's in DIBuileder
[AMD Official Use Only - Internal Distribution Only]
Didn't observed this on trunk(Using attached test.cpp): Trunk at
29ae4485950ed76faa94dabbd13bbe91d2b5c750
$clang++ -std=c++14 -g test.cpp -c -S -emit-llvm -o - | awk /DIFile/
!3 = !DIFile(filename: "test.cpp", directory: "/home/")
$ clang++ -std=c++14 -g test.cpp -c -o - | llvm-dwarfdump -debug-line -
[...]
file_names[ 1]:
name: "test.cpp"
dir_index: 0
mod_time: 0x00000000
length: 0x00000000
[...]
Did I missed something, while reproducing ? ?
--Sourabh
From: llvm-dev <llvm-dev-bounces at lists.llvm.org<mailto:llvm-dev-bounces
at lists.llvm.org>> On Behalf Of Umesh Kalappa via llvm-dev
Sent: Tuesday, September 1, 2020 9:50 PM
To: LLVM Developers Mailing List <llvm-dev at
lists.llvm.org<mailto:llvm-dev at lists.llvm.org>>; cfe-dev at
lists.llvm.org<mailto:cfe-dev at lists.llvm.org> Developers <cfe-dev at
lists.llvm.org<mailto:cfe-dev at lists.llvm.org>>
Subject: [llvm-dev] Filename's in DIBuileder
[CAUTION: External Email]
Hi All ,
We have a scenario in our debugger to handle the file index in the debug_ine
info like
$llvm-dwarfdump -debug-line test.o
file_names[ 1]:
name: "test.cpp"
dir_index: 0
mod_time: 0x00000000
length: 0x00000000
file_names[ 2]:
name: "test.cpp"
dir_index: 1
mod_time: 0x00000000
length: 0x00000000
Address Line Column File ISA Discriminator Flags
------------------ ------ ------ ------ --- ------------- -------------
0x0000000000000000 12 0 1 0 0 is_stmt
0x0000000000000008 13 1 1 0 0 is_stmt prologue_end
0x0000000000000010 16 0 1 0 0 is_stmt
0x0000000000000018 17 1 1 0 0 is_stmt prologue_end
0x0000000000000020 20 0 1 0 0 is_stmt
0x0000000000000028 21 9 1 0 0 is_stmt prologue_end
0x000000000000002f 22 9 1 0 0 is_stmt
0x0000000000000032 22 10 1 0 0
0x0000000000000035 22 7 1 0 0
0x000000000000003c 23 1 1 0 0 is_stmt
0x0000000000000040 25 0 1 0 0 is_stmt
0x0000000000000044 25 13 1 0 0 is_stmt prologue_end
0x0000000000000080 0 0 2 0 0 is_stmt
0x000000000000008b 0 0 2 0 0 is_stmt end_sequence
the debug info is emitted by the DIBuilder like
!3 = !DIFile(filename: "/folk/tmp/test/test.cpp", directory:
"/folk/tmp/test")
!45 = distinct !DISubprogram(linkageName: "_GLOBAL__sub_I_test.cpp",
scope: !3, file: !3, type: !46, flags: DIFlagArtificial, spFlags:
DISPFlagLocalToUnit | DISPFlagDefinition, unit: !2, retainedNodes: !4)
!8 = !DIFile(filename: "test.cpp", directory:
"/folk/tmp/test")
!16 = !DISubprogram(name: "proc", linkageName:
"_ZN4test4procEv", scope: !9, file: !8, line: 8, type: !12, scopeLine:
8, flags: DIFlagPublic | DIFlagPrototyped, spFlags: 0)
Latest clang trunk used like
$clang -std=c++14 -g -eimit-llvm -S /folk/tmp/test/test.cpp
and the respective files like test.cc ,test.ll and test.s are attached in the
mail for the reference.
the scenario is that why the file-name 's are different is both cases
,where "ZN4test4procEv" is the user defined function and
"_GLOBAL__sub_I_test.cpp"
is generated for the static initialisation ,which leads to the two file index
like 1 and 2 for two files in the filename table ,that confuse our debugger .
So we like to hear from experts here ,before we investigate the DIBuilder to
fix the same.
Thank you
~Umesh
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20200901/40cfe53c/attachment-0001.html>
Thank you Paual and Tomar . https://bugs.llvm.org/show_bug.cgi?id=47391 FYI , Two entries for the same file are handled by gnu assembler . ~Umesh On Tue, Sep 1, 2020 at 11:02 PM Robinson, Paul <paul.robinson at sony.com> wrote:> Aha. The two DIFile entries are describing the same file two different > ways, but the file-tracking is not noticing that the two descriptions are > equivalent. And I am convinced it is because the compilation command uses > an absolute path. > > > > This could be a failure to deduplicate the file entries in the frontend, > or a similar failure in MC once it starts handing out file numbers. > (Possibly both!) > > > > Umesh, could you file a bug for this (at https://bugs.llvm.org) please? > Use product “libraries” component “DebugInfo” and the right people will see > it. (It is quite possibly my fault…) This might be a duplicate of an > existing bug, but we can figure that out later. > > > > Thanks! > > --paulr > > > > *From:* cfe-dev <cfe-dev-bounces at lists.llvm.org> *On Behalf Of *Robinson, > Paul via cfe-dev > *Sent:* Tuesday, September 1, 2020 1:10 PM > *To:* Tomar, Sourabh Singh <SourabhSingh.Tomar at amd.com>; Umesh Kalappa < > umesh.kalappa0 at gmail.com>; cfe-dev at lists.llvm.org Developers < > cfe-dev at lists.llvm.org>; 'llvm-dev at lists.llvm.org' < > llvm-dev at lists.llvm.org> > *Subject:* Re: [cfe-dev] [llvm-dev] Filename's in DIBuileder > > > > Try using $PWD/test.cpp on the clang command line. I am seeing the > duplicate DIFile entries, but not yet able to reproduce a .debug_line > section with multiple directory entries. > > --paulr > > > > *From:* llvm-dev <llvm-dev-bounces at lists.llvm.org> *On Behalf Of *Tomar, > Sourabh Singh via llvm-dev > *Sent:* Tuesday, September 1, 2020 1:07 PM > *To:* Umesh Kalappa <umesh.kalappa0 at gmail.com>; cfe-dev at lists.llvm.org > Developers <cfe-dev at lists.llvm.org> > *Cc:* llvm-dev at lists.llvm.org > *Subject:* Re: [llvm-dev] Filename's in DIBuileder > > > > [AMD Official Use Only - Internal Distribution Only] > > > > Didn’t observed this on trunk(Using attached test.cpp): Trunk at > 29ae4485950ed76faa94dabbd13bbe91d2b5c750 > > > $clang++ -std=c++14 -g test.cpp -c -S -emit-llvm -o - | awk /DIFile/ > > !3 = !DIFile(filename: "test.cpp", directory: "/home/") > > > > $ clang++ -std=c++14 -g test.cpp -c -o - | llvm-dwarfdump -debug-line - > > […] > > file_names[ 1]: > > name: "test.cpp" > > dir_index: 0 > > mod_time: 0x00000000 > > length: 0x00000000 > > […] > > > > Did I missed something, while reproducing ? ? > > > > --Sourabh > > > > *From:* llvm-dev <llvm-dev-bounces at lists.llvm.org> *On Behalf Of *Umesh > Kalappa via llvm-dev > *Sent:* Tuesday, September 1, 2020 9:50 PM > *To:* LLVM Developers Mailing List <llvm-dev at lists.llvm.org>; > cfe-dev at lists.llvm.org Developers <cfe-dev at lists.llvm.org> > *Subject:* [llvm-dev] Filename's in DIBuileder > > > > [CAUTION: External Email] > > Hi All , > > > > We have a scenario in our debugger to handle the file index in the > debug_ine info like > > $llvm-dwarfdump -debug-line test.o > file_names[ 1]: > name: "test.cpp" > dir_index: 0 > mod_time: 0x00000000 > length: 0x00000000 > file_names[ 2]: > name: "test.cpp" > dir_index: 1 > mod_time: 0x00000000 > length: 0x00000000 > > Address Line Column File ISA Discriminator Flags > ------------------ ------ ------ ------ --- ------------- ------------- > 0x0000000000000000 12 0 1 0 0 is_stmt > 0x0000000000000008 13 1 1 0 0 is_stmt > prologue_end > 0x0000000000000010 16 0 1 0 0 is_stmt > 0x0000000000000018 17 1 1 0 0 is_stmt > prologue_end > 0x0000000000000020 20 0 1 0 0 is_stmt > 0x0000000000000028 21 9 1 0 0 is_stmt > prologue_end > 0x000000000000002f 22 9 1 0 0 is_stmt > 0x0000000000000032 22 10 1 0 0 > 0x0000000000000035 22 7 1 0 0 > 0x000000000000003c 23 1 1 0 0 is_stmt > 0x0000000000000040 25 0 1 0 0 is_stmt > 0x0000000000000044 25 13 1 0 0 is_stmt > prologue_end > 0x0000000000000080 0 0 2 0 0 is_stmt > 0x000000000000008b 0 0 2 0 0 is_stmt > end_sequence > > > the debug info is emitted by the DIBuilder like > > !3 = !DIFile(filename: "/folk/tmp/test/test.cpp", directory: > "/folk/tmp/test") > !45 = distinct !DISubprogram(linkageName: "_GLOBAL__sub_I_test.cpp", > scope: !3, file: !3, type: !46, flags: DIFlagArtificial, spFlags: > DISPFlagLocalToUnit | DISPFlagDefinition, unit: !2, retainedNodes: !4) > > !8 = !DIFile(filename: "test.cpp", directory: "/folk/tmp/test") > !16 = !DISubprogram(name: "proc", linkageName: "_ZN4test4procEv", scope: > !9, file: !8, line: 8, type: !12, scopeLine: 8, flags: DIFlagPublic | > DIFlagPrototyped, spFlags: 0) > > Latest clang trunk used like > > $clang -std=c++14 -g -eimit-llvm -S /folk/tmp/test/test.cpp > > and the respective files like test.cc ,test.ll and test.s are attached in > the mail for the reference. > > the scenario is that why the file-name 's are different is both cases > ,where "ZN4test4procEv" is the user defined function and > "_GLOBAL__sub_I_test.cpp" > is generated for the static initialisation ,which leads to the two file > index like 1 and 2 for two files in the filename table ,that confuse our > debugger . > > So we like to hear from experts here ,before we investigate the DIBuilder > to fix the same. > > > > Thank you > ~Umesh >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200902/958e8ceb/attachment.html>