[gdb/testsuite] Add gdb.base/include-main.exp
authorTom de Vries <tdevries@suse.de>
Fri, 26 Nov 2021 19:46:37 +0000 (20:46 +0100)
committerTom de Vries <tdevries@suse.de>
Fri, 26 Nov 2021 19:46:37 +0000 (20:46 +0100)
commitf8080fb7a44b0a3a9699c188015106bc4b16076f
tree8dcb141b80fa360e4023ef812c21fef648cd4ca9
parentc099934746ab8d7059411c77acc56fc6d149bbf4
[gdb/testsuite] Add gdb.base/include-main.exp

The test-case gdb.ada/dgopt.exp uses the -gnatD switch, in combination with
-gnatG.

This causes the source file $src/gdb/testsuite/gdb.ada/dgopt/x.adb to be
expanded into $build/gdb/testsuite/outputs/gdb.ada/dgopt/x.adb.dg, and the
debug information should refer to the x.adb.dg file.

That is the case for the .debug_line part:
...
The Directory Table is empty.

 The File Name Table (offset 0x1c):
  Entry Dir     Time    Size    Name
  1     0       0       0       x.adb.dg
...
but not for the .debug_info part:
...
    <11>   DW_AT_name        : $src/gdb/testsuite/gdb.ada/dgopt/x.adb
    <15>   DW_AT_comp_dir    : $build/gdb/testsuite/outputs/gdb.ada/dgopt
...

Filed as PR gcc/103436.

In C we can generate similar debug information, using a source file that does
not contain any code, but includes another one that does:
...
 $ cat gdb/testsuite/gdb.base/include-main.c
 #include "main.c"
...
such that in the .debug_line part we have:
...
 The Directory Table (offset 0x1c):
  1     /home/vries/gdb_versions/devel/src/gdb/testsuite/gdb.base

 The File Name Table (offset 0x57):
  Entry Dir     Time    Size    Name
  1     1       0       0       main.c
...
and in the .debug_info part:
...
    <11>   DW_AT_name        : $src/gdb/testsuite/gdb.base/include-main.c
    <15>   DW_AT_comp_dir    : $build/gdb/testsuite
...

Add a C test-case that mimics gdb.ada/dgopt.exp, that is:
- generate debug info as described above,
- issue a list of a line in include-main.c, while the corresponding
  CU is not expanded yet.

Tested on x86_64-linux.
gdb/testsuite/gdb.base/include-main.c [new file with mode: 0644]
gdb/testsuite/gdb.base/include-main.exp [new file with mode: 0644]
gdb/testsuite/gdb.base/main.c [new file with mode: 0644]