PETSC,调试,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会把编译命令全部打印出来

2)可见默认是-g -O0, 或者-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)感觉改这个文件就可以

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

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)

修改

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

总结:

修改

petsc-3.18.1/config/BuildSystem/config/compilerOptions.py中把-g 都改成了-pg,目前看起来是可以的。

问题:

生成不了gprof需要的gmon.out文件,可能是因为动态链接库的原因。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值