=== If no file names and line numbers are shown below, one can run
            addr2line -Cpfie my_exefile my_line_address
    to convert `my_line_address` (e.g., 0x4a6b) into file name and line number.
    Or one can use amrex/Tools/Backtrace/parse_bt.py.

=== Please note that the line number reported by addr2line may not be accurate.
    One can use
            readelf -wl my_exefile | grep my_line_address'
    to find out the offset for that line.

 0: ./Castro2d.gnu.TEST.TPROF.MPI.TRUESDC.ex(+0x1e47e0) [0x558851fd97e0]
    amrex::BLBackTrace::print_backtrace_info(_IO_FILE*)
/raid/testing/castro-gfortran/amrex//Src/Base/AMReX_BLBackTrace.cpp:179:39

 1: ./Castro2d.gnu.TEST.TPROF.MPI.TRUESDC.ex(+0x1e6620) [0x558851fdb620]
    amrex::BLBackTrace::handler(int)
/raid/testing/castro-gfortran/amrex//Src/Base/AMReX_BLBackTrace.cpp:85:8

 2: /lib64/libc.so.6(+0x3c6b0) [0x7fbe024976b0]
    __restore_rt
??:0

 3: ./Castro2d.gnu.TEST.TPROF.MPI.TRUESDC.ex(+0xde7a3) [0x558851ed37a3]
    void dgefa<6>(ArrayUtil::MathArray2D<1, 6, 1, 6>&, amrex::Array1D<int, 1, 6>&, int&) inlined at /raid/testing/castro-gfortran/Castro//Source/sdc/Castro_sdc_util.H:362:25 in sdc_newton_solve(double, amrex::GpuArray<double, 11ul> const&, amrex::GpuArray<double, 11ul>&, amrex::GpuArray<double, 11ul> const&, int, double&, int&)
/raid/testing/castro-gfortran/Microphysics//util/linpack.H:94:28
sdc_newton_solve(double, amrex::GpuArray<double, 11ul> const&, amrex::GpuArray<double, 11ul>&, amrex::GpuArray<double, 11ul> const&, int, double&, int&)
/raid/testing/castro-gfortran/Castro//Source/sdc/Castro_sdc_util.H:362:25

 4: ./Castro2d.gnu.TEST.TPROF.MPI.TRUESDC.ex(+0xd96db) [0x558851ece6db]
    sdc_newton_subdivide(double, amrex::GpuArray<double, 11ul> const&, amrex::GpuArray<double, 11ul>&, amrex::GpuArray<double, 11ul> const&, int, double&, int&) inlined at /raid/testing/castro-gfortran/Castro//Source/sdc/Castro_sdc_util.H:142:29 in Castro::do_sdc_update(int, int, double)
/raid/testing/castro-gfortran/Castro//Source/sdc/Castro_sdc_util.H:224:28
sdc_solve(double, amrex::GpuArray<double, 11ul> const&, amrex::GpuArray<double, 11ul>&, amrex::GpuArray<double, 11ul> const&, int)
/raid/testing/castro-gfortran/Castro//Source/sdc/Castro_sdc_util.H:142:29
sdc_solve(double, amrex::GpuArray<double, 11ul> const&, amrex::GpuArray<double, 11ul>&, amrex::GpuArray<double, 11ul> const&, int)
/raid/testing/castro-gfortran/Castro//Source/sdc/Castro_sdc_util.H:122:1
sdc_solve(int, int, int, double, amrex::Array4<double const> const&, amrex::Array4<double> const&, amrex::Array4<double const> const&, int)
/raid/testing/castro-gfortran/Castro//Source/sdc/Castro_sdc_util.H:113:14
sdc_update_centers_o4(int, int, int, amrex::Array4<double const> const&, amrex::Array4<double> const&, amrex::Array4<double const> const&, double, int)
/raid/testing/castro-gfortran/Castro//Source/sdc/Castro_sdc_util.H:853:18
operator()
/raid/testing/castro-gfortran/Castro//Source/sdc/Castro_sdc.cpp:245:38
ParallelFor<Castro::do_sdc_update(int, int, amrex::Real)::<lambda(int, int, int)> >
/raid/testing/castro-gfortran/amrex//Src/Base/AMReX_GpuLaunchFunctsC.H:69:10
Castro::do_sdc_update(int, int, double)
/raid/testing/castro-gfortran/Castro//Source/sdc/Castro_sdc.cpp:242:31

 5: ./Castro2d.gnu.TEST.TPROF.MPI.TRUESDC.ex(+0x5467d) [0x558851e4967d]
    Castro::do_advance_sdc(double, double, int, int)
/raid/testing/castro-gfortran/Castro//Source/driver/Castro_advance_sdc.cpp:224:18

 6: ./Castro2d.gnu.TEST.TPROF.MPI.TRUESDC.ex(+0x4edb0) [0x558851e43db0]
    Castro::advance(double, double, int, int)
/raid/testing/castro-gfortran/Castro//Source/driver/Castro_advance.cpp:62:42

 7: ./Castro2d.gnu.TEST.TPROF.MPI.TRUESDC.ex(+0x24fb26) [0x558852044b26]
    amrex::Amr::timeStep(int, double, int, int, double)
/raid/testing/castro-gfortran/amrex//Src/Amr/AMReX_Amr.cpp:1973:44

 8: ./Castro2d.gnu.TEST.TPROF.MPI.TRUESDC.ex(+0x241e7a) [0x558852036e7a]
    std::vector<double, std::allocator<double> >::operator[](unsigned long) inlined at /raid/testing/castro-gfortran/amrex//Src/Base/AMReX_Vector.H:36:54 in amrex::Amr::coarseTimeStep(double)
/usr/include/c++/9/bits/stl_vector.h:1042:2
amrex::Vector<double, std::allocator<double> >::operator[](unsigned long)
/raid/testing/castro-gfortran/amrex//Src/Base/AMReX_Vector.H:36:54
amrex::Amr::coarseTimeStep(double)
/raid/testing/castro-gfortran/amrex//Src/Amr/AMReX_Amr.cpp:2083:26

 9: ./Castro2d.gnu.TEST.TPROF.MPI.TRUESDC.ex(+0x22b6c) [0x558851e17b6c]
    main
/raid/testing/castro-gfortran/Castro//Source/driver/main.cpp:143:33

10: /lib64/libc.so.6(__libc_start_main+0xf3) [0x7fbe024821a3]
    __libc_start_main
??:0

11: ./Castro2d.gnu.TEST.TPROF.MPI.TRUESDC.ex(+0x2d60e) [0x558851e2260e]
    _start
??:0


===== TinyProfilers ======
main()
Amr::coarseTimeStep()
Amr::timeStep()
Castro::advance()
Castro::do_advance_sdc()
Castro::do_sdc_update()