Problem when calling a routine

Hi,

I have a SIGSEGV with a simple program involving a CALL to a routine :

[CNC stack]$ pgf90 --version

pgf90 (aka nvfortran) 21.7-0 64-bit target on x86-64 Linux -tp zen 
PGI Compilers and Tools
Copyright (c) 2021, NVIDIA CORPORATION & AFFILIATES.  All rights reserved.
[CNC stack]$ cat /etc/os-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.8 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.8"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.8 (Maipo)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.8:GA:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.8
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.8"
[CNC stack]$ ./run.sh 
+ FC='pgf90  -mp -fPIC -Minfo -gopt -Mlarge_arrays -Mlist -traceback -Mnofma -Mbyteswapio -Mbackslash -O0 -g'
+ CC='pgcc -g -O0'
+ rm -f a.out dist_grid_ctl_mod.o master.o dist_grid_ctl_mod.mod
+ pgf90 -mp -fPIC -Minfo -gopt -Mlarge_arrays -Mlist -traceback -Mnofma -Mbyteswapio -Mbackslash -O0 -g -c dist_grid_ctl_mod.F90
dist_grid_ctl:
      0, count reduction inlined
+ pgf90 -mp -fPIC -Minfo -gopt -Mlarge_arrays -Mlist -traceback -Mnofma -Mbyteswapio -Mbackslash -O0 -g -c master.F90
+ pgf90 -mp -fPIC -Minfo -gopt -Mlarge_arrays -Mlist -traceback -Mnofma -Mbyteswapio -Mbackslash -O0 -g dist_grid_ctl_mod.o master.o
+ ulimit -s unlimited
+ gdb -ex=run --args ./a.out
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-119.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/gmap/mrpm/marguina/pack/48t1_mainPGIdbg.01.PGI217.cpu0/stack/a.out...done.
Starting program: /home/gmap/mrpm/marguina/pack/48t1_mainPGIdbg.01.PGI217.cpu0/stack/./a.out 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
 master.F90:           18

Program received signal SIGSEGV, Segmentation fault.
0x0000000000401220 in dist_grid_ctl_mod::dist_grid_ctl (pgpg=..., kfdistg=0, kproma=4096, kfrom=..., kflds=48, pgp=<error reading variable: Unhandled dwarf expression opcode 0xa3>, 
    ksort=...) at dist_grid_ctl_mod.F90:3
3       SUBROUTINE DIST_GRID_CTL(PGPG,KFDISTG,KPROMA,KFROM,KFLDS,PGP,KSORT)
Missing separate debuginfos, use: debuginfo-install glibc-2.17-307.el7.1.x86_64 libgcc-4.8.5-39.el7.x86_64

The code is available here :

Regards,

Philippe

Hi Philippe,

Thanks for the report. I’m able to reproduce the error but only on a RHEL 7.8 system. Seems to work elsewhere, but I’m not sure if the issue is just masked or specific to RHEL 7.8.

My best guess is that it has something to due with the DWARF info, given the error “Unhandled dwarf expression” and that the error goes away if I remove “-g” and “-gopt”. Hence, this would be the best work around.

I’m filed TPR #30613 and sent it to our debugger folks for further investigation.

-Mat

Thank you Mat.