petsc, depurar, gprof

1)

 make V=1 PETSC_DIR=/thfs1/home/mkcode/tianya/software/petsc-3.18.1 PETSC_ARCH=arch-linux-c-debug all

V=1 imprimirá todos os comandos de compilação

2) Pode-se ver que o padrão é -g -O0 ou -g3 -O0

/thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpicc -c -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch -fstack-protector -fvisibility=hidden -g3 -O0  -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/include -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include    -MMD -MP /thfs1/home/mkcode/tianya/software/petsc-3.18.1/src/tao/constrained/impls/ipm/ipm.c -o arch-linux-c-debug/obj/tao/constrained/impls/ipm/ipm.o
/thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpicc -c -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch -fstack-protector -fvisibility=hidden -g3 -O0  -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/include -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include    -MMD -MP /thfs1/home/mkcode/tianya/software/petsc-3.18.1/src/tao/constrained/impls/admm/admm.c -o arch-linux-c-debug/obj/tao/constrained/impls/admm/admm.o
/thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpif90 -c -Wall -ffree-line-length-none -ffree-line-length-0 -Wno-lto-type-mismatch -Wno-unused-dummy-argument -g -O0    -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/include -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include    -MMD -MP /thfs1/home/mkcode/tianya/software/petsc-3.18.1/src/ksp/f90-mod/petsckspdefmod.F90 -o arch-linux-c-debug/obj/ksp/f90-mod/petsckspdefmod.o -J/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include
/thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpicc -c -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch -fstack-protector -fvisibility=hidden -g3 -O0  -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/include -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include    -MMD -MP /thfs1/home/mkcode/tianya/software/petsc-3.18.1/src/tao/constrained/impls/ipm/pdipm.c -o arch-linux-c-debug/obj/tao/constrained/impls/ipm/pdipm.o

3) Sinto que este arquivo pode ser alterado

config/BuildSystem/config/package.py:250: if flag in ['-g','-g3','-Z7']:
config/BuildSystem/config/compilerOptions.py:41: flags.extend([' -g3','-O0'])
config/BuildSystem/config/compilerOptions.py:159: # -g3 causa um como SEGV no OSX

4)

 grep -rn \\-g3 *
Binary file config/BuildSystem/config/__pycache__/compilerOptions.cpython-38.pyc matches
Binary file config/BuildSystem/config/__pycache__/package.cpython-38.pyc matches
config/BuildSystem/config/package.py:250:      if flag in ['-g','-g3','-Z7']:
config/BuildSystem/config/compilerOptions.py:41:        flags.extend(['-g3','-O0'])
config/BuildSystem/config/compilerOptions.py:159:        # -g3 causes an as SEGV on OSX
config/BuildSystem/config/compilerOptions.py:268:        # g77 3.2.3 preprocesses the file into nothing if we give -g3
Binary file config/BuildSystem/config/packages/__pycache__/libpng.cpython-38.pyc matches
config/BuildSystem/config/packages/libpng.py:29:    # Switch -g3 to -g - as libpng build can break with -g3 ref - https://github.com/glennrp/libpng/issues/254
config/BuildSystem/config/packages/libpng.py:32:    cflags = cflags.replace('-g3','-g')
Binary file share/petsc/datafiles/meshes/barycentricallyrefinedcube.h5 matches
Binary file src/ksp/ksp/tutorials/ex1 matches
Binary file src/ksp/ksp/tutorials/ex45 matches

5)

Rever

249     for flag in cflags.split():
 250       if flag in ['-g','-g3','-Z7','-pg']:
 251         outflags.append(flag)

6)

Using C compile: /thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpicc -o .o -c -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch -fstack-protector -fvisibility=hidden -pg -O0
mpicc -show: gcc -fPIC -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include -L/thfs1/software/mpich/mpi-n-gcc9.3.0/lib -Wl,-rpath -Wl,/thfs1/software/mpich/mpi-n-gcc9.3.0/lib -Wl,--enable-new-dtags -lmpi
C compiler version: gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Using C++ compile: /thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpicxx -o .o -c -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -Wno-lto-type-mismatch -fstack-protector -fvisibility=hidden -g -O0  -std=gnu++17  -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/include -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include
Using C compile: /thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpicc -o .o -c -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch -fstack-protector -fvisibility=hidden -pg -O0
mpicc -show: gcc -fPIC -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include -L/thfs1/software/mpich/mpi-n-gcc9.3.0/lib -Wl,-rpath -Wl,/thfs1/software/mpich/mpi-n-gcc9.3.0/lib -Wl,--enable-new-dtags -lmpi
C compiler version: gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Using C++ compile: /thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpicxx -o .o -c -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -Wno-lto-type-mismatch -fstack-protector -fvisibility=hidden -pg -O0  -std=gnu++17  -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/include -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include
mpicxx -show: g++ -fPIC -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include -L/thfs1/software/mpich/mpi-n-gcc9.3.0/lib -lmpicxx -Wl,-rpath -Wl,/thfs1/software/mpich/mpi-n-gcc9.3.0/lib -Wl,--enable-new-dtags -lmpi
C++ compiler version: g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Using Fortran compile: /thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpif90 -o .o -c -Wall -ffree-line-length-none -ffree-line-length-0 -Wno-lto-type-mismatch -Wno-unused-dummy-argument -pg -O0    -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/include -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include

Resumir:

Rever

Em petsc-3.18.1/config/BuildSystem/config/compilerOptions.py, -g foi alterado para -pg, o que parece estar ok no momento.

pergunta:

O arquivo gmon.out exigido pelo gprof não pode ser gerado, provavelmente por causa da biblioteca de vínculo dinâmico.

Supongo que te gusta

Origin blog.csdn.net/anlongstar/article/details/128271446
Recomendado
Clasificación