121 lines
4.3 KiB
Bash
Executable File
121 lines
4.3 KiB
Bash
Executable File
# Copyright (C) 2011 Red Hat, Inc.
|
|
# This file is part of elfutils.
|
|
#
|
|
# This file is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# elfutils is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
. $srcdir/test-subr.sh
|
|
|
|
# NOTE:
|
|
# the file testfile_nvidia_linemap is a CUDA binary for an NVIDIA A100 generated as follows using CUDA 11.2
|
|
# nvcc -o main main.cu -Xcompiler "-g -fopenmp" -O3 -lineinfo -arch sm_80 -lcudart -lcuda -lstdc++ -lm
|
|
# cuobjdump -xelf all main
|
|
# mv main.sm_80.cubin testfile_nvidia_linemap
|
|
|
|
testfiles testfile_nvidia_linemap
|
|
testrun_compare ${abs_top_builddir}/src/readelf --debug-dump=line testfile_nvidia_linemap << EOF
|
|
|
|
DWARF section [ 5] '.debug_line' at offset 0x3e0:
|
|
|
|
Table at offset 0:
|
|
|
|
Length: 253
|
|
DWARF version: 2
|
|
Prologue length: 111
|
|
Address size: 8
|
|
Segment selector size: 0
|
|
Min instruction length: 1
|
|
Max operations per instruction: 1
|
|
Initial value if 'is_stmt': 1
|
|
Line base: -5
|
|
Line range: 14
|
|
Opcode base: 10
|
|
|
|
Opcodes:
|
|
[1] 0 arguments
|
|
[2] 1 argument
|
|
[3] 1 argument
|
|
[4] 1 argument
|
|
[5] 1 argument
|
|
[6] 0 arguments
|
|
[7] 0 arguments
|
|
[8] 0 arguments
|
|
[9] 1 argument
|
|
|
|
Directory table:
|
|
/home/johnmc/hpctoolkit-gpu-samples/nvidia_extended_linemap4
|
|
|
|
File name table:
|
|
Entry Dir Time Size Name
|
|
1 1 1626104146 1819 main.cu
|
|
2 1 1626104111 211 bar.h
|
|
|
|
Line number statements:
|
|
[ 79] extended opcode 2: set address to 0 <kernel>
|
|
[ 84] set file to 1
|
|
[ 86] advance line by constant 24 to 25
|
|
[ 88] copy
|
|
[ 89] special opcode 240: address+16 = 0x10 <kernel+0x10>, line+1 = 26
|
|
[ 8a] advance line by constant 1 to 27
|
|
[ 8c] advance address by 48 to 0x40 <kernel+0x40>
|
|
[ 8e] copy
|
|
[ 8f] advance line by constant -2 to 25
|
|
[ 91] advance address by 80 to 0x90 <kernel+0x90>
|
|
[ 94] copy
|
|
[ 95] special opcode 242: address+16 = 0xa0 <kernel+0xa0>, line+3 = 28
|
|
[ 96] advance address by 96 to 0x100 <kernel+0x100>
|
|
[ 99] copy
|
|
[ 9a] extended opcode 144: set inlined context 6, function name foo (0x0)
|
|
[ 9f] advance line by constant -20 to 8
|
|
[ a1] copy
|
|
[ a2] advance line by constant 1 to 9
|
|
[ a4] advance address by 80 to 0x150 <kernel+0x150>
|
|
[ a7] copy
|
|
[ a8] extended opcode 144: set inlined context 0, function name foo (0x0)
|
|
[ ad] advance line by constant 22 to 31
|
|
[ af] advance address by 144 to 0x1e0 <kernel+0x1e0>
|
|
[ b2] copy
|
|
[ b3] set file to 2
|
|
[ b5] extended opcode 144: set inlined context 9, function name bar (0x4)
|
|
[ ba] advance line by constant -25 to 6
|
|
[ bc] copy
|
|
[ bd] set file to 1
|
|
[ bf] extended opcode 144: set inlined context 10, function name foo (0x0)
|
|
[ c4] advance line by constant 2 to 8
|
|
[ c6] copy
|
|
[ c7] advance line by constant 1 to 9
|
|
[ c9] advance address by 64 to 0x220 <kernel+0x220>
|
|
[ cc] copy
|
|
[ cd] set file to 2
|
|
[ cf] extended opcode 144: set inlined context 9, function name bar (0x4)
|
|
[ d4] advance line by constant -2 to 7
|
|
[ d6] advance address by 144 to 0x2b0 <kernel+0x2b0>
|
|
[ d9] copy
|
|
[ da] advance line by constant 1 to 8
|
|
[ dc] advance address by 64 to 0x2f0 <kernel+0x2f0>
|
|
[ df] copy
|
|
[ e0] set file to 1
|
|
[ e2] extended opcode 144: set inlined context 14, function name _Z1aPiS_S_ (0x8)
|
|
[ e7] advance line by constant 10 to 18
|
|
[ e9] copy
|
|
[ ea] advance line by constant 1 to 19
|
|
[ ec] advance address by 64 to 0x330 <kernel+0x330>
|
|
[ ef] copy
|
|
[ f0] extended opcode 144: set inlined context 0, function name foo (0x0)
|
|
[ f5] advance line by constant 14 to 33
|
|
[ f7] advance address by 144 to 0x3c0 <kernel+0x3c0>
|
|
[ fa] copy
|
|
[ fb] advance address by 192 to 0x480
|
|
[ fe] extended opcode 1: end of sequence
|
|
EOF
|