AMReX-Codes/amrex

Hardcoded path to `addr2line` or `eu-addr2line` in `BLBackTrace`

mirenradia opened this issue · 0 comments

The paths to addr2lineand eu-addr2line are hardcoded to

/usr/bin/addr2line

and

/usr/bin/eu-addr2line

respectively in AMReX_BLBackTrace.cpp. These might not be the ones we want to use if we are not using the system binutils (or elfutils) (e.g., we have built a newer binutils using Spack). This has caused issues for me and @draenog where the newer binutils we are using compresses the debug info in a way that the older addr2line from the system binutils is not able to cope with and we get the following errors

/usr/bin/addr2line: /path/to/my_amrex_application.ex: unable to initialize decompress status for section .debug_info
/usr/bin/addr2line: /path/to/my_amrex_application.ex: File format not recognized

This code should instead check what addr2line or eu-addr2line is available in the PATH first and can then resort to the above hardcoded paths if the command is not found.