Skip to content

Commit ae95dc9

Browse files
committed
Reimplemented stackTrace, added line info output.
1 parent de32884 commit ae95dc9

File tree

12 files changed

+381
-63
lines changed

12 files changed

+381
-63
lines changed

CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ if( NOT is_submodule )
2626
option( ENABLE_OPENMP "Build with OpenMP" ON )
2727
option( ENABLE_CALIPER "Build with Caliper" ON )
2828

29+
option( ENABLE_ADDR2LINE "Enable addr2line usage in stacktraces" ON )
30+
2931
include( cmake/blt/SetupBLT.cmake )
3032
include( cmake/CMakeBasics.cmake )
3133
include( cmake/SetupTPL.cmake )
@@ -34,7 +36,7 @@ endif()
3436
include(cmake/Macros.cmake)
3537
include(cmake/Config.cmake)
3638

37-
set( lvarray_dependencies "" )
39+
set( lvarray_dependencies dl )
3840

3941
if( ENABLE_CHAI )
4042
set( lvarray_dependencies ${lvarray_dependencies} chai umpire )

cmake/Config.cmake

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,27 @@ foreach( DEP in ${PREPROCESSOR_DEFINES})
1414
endif()
1515
endforeach()
1616

17+
if( USE_ADDR2LINE )
18+
if ( NOT DEFINED ADDR2LINE_EXEC )
19+
set( ADDR2LINE_EXEC /usr/bin/addr2line CACHE PATH "" )
20+
endif()
21+
22+
if ( NOT EXISTS ${ADDR2LINE_EXEC} )
23+
message( FATAL_ERROR "The addr2line executable does not exist: ${ADDR2LINE_EXEC}" )
24+
endif()
25+
26+
set( LVARRAY_ADDR2LINE_EXEC ${ADDR2LINE_EXEC} )
27+
endif()
28+
1729
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/LvArrayConfig.hpp.in
1830
${CMAKE_BINARY_DIR}/include/LvArrayConfig.hpp )
1931

2032
function( make_full_config_file
2133
PREPROCESSOR_VARS )
2234
foreach( DEP in ${PREPROCESSOR_VARS})
23-
set(USE_${DEP} TRUE )
24-
set(GEOSX_USE_${DEP} TRUE )
25-
set(${DEP} TRUE )
35+
set(USE_${DEP} TRUE )
36+
set(GEOSX_USE_${DEP} TRUE )
37+
set(${DEP} TRUE )
2638
endforeach()
2739

2840
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/LvArrayConfig.hpp.in

docs/doxygen/LvArrayConfig.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,5 @@
3737
#ifndef USE_CALIPER
3838
#define USE_CALIPER
3939
#endif
40+
41+
#define LVARRAY_ADDR2LINE_EXEC "/usr/bin/addr2line"

host-configs/LLNL/[email protected]

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ set(GEOSX_TPL_DIR ${GEOSX_TPL_ROOT_DIR}/2020-07-08/install-${CONFIG_NAME}-releas
66

77
set(ENABLE_UMPIRE ON CACHE BOOL "")
88
set(ENABLE_CHAI ON CACHE BOOL "")
9+
set(USE_ADDR2LINE ON CACHE BOOL "")
910

1011
# C options
1112
set(CMAKE_C_COMPILER /usr/tce/packages/clang/clang-upstream-2019.03.26/bin/clang CACHE PATH "")

host-configs/LLNL/[email protected]

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ set(GEOSX_TPL_DIR ${GEOSX_TPL_ROOT_DIR}/2020-07-08/install-${CONFIG_NAME}-releas
77

88
set(ENABLE_UMPIRE ON CACHE BOOL "")
99
set(ENABLE_CHAI ON CACHE BOOL "")
10+
set(USE_ADDR2LINE ON CACHE BOOL "")
1011

1112
set(CMAKE_C_COMPILER /usr/tce/packages/gcc/gcc-8.3.1/bin/gcc CACHE PATH "")
1213
set(CMAKE_CXX_COMPILER /usr/tce/packages/gcc/gcc-8.3.1/bin/g++ CACHE PATH "")

host-configs/LLNL/quartz-base.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ set(ENABLE_CALIPER ON CACHE BOOL "")
3737
set(ENABLE_PAPI ON CACHE BOOL "")
3838
set(PAPI_PREFIX /usr/tce/packages/papi/papi-5.4.3 CACHE PATH "")
3939

40+
set(USE_ADDR2LINE ON CACHE BOOL "")
41+
4042
set(ENABLE_OPENMP ON CACHE BOOL "")
4143
set(CUDA_ENABLED OFF CACHE BOOL "")
4244

src/LvArrayConfig.hpp.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,5 @@
3737
#ifndef USE_CALIPER
3838
#cmakedefine USE_CALIPER
3939
#endif
40+
41+
#cmakedefine LVARRAY_ADDR2LINE_EXEC "@LVARRAY_ADDR2LINE_EXEC@"

src/Macros.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
__oss << "***** LOCATION: " LOCATION "\n"; \
109109
__oss << "***** Controlling expression (should be false): " STRINGIZE( EXP ) "\n"; \
110110
__oss << MSG << "\n"; \
111-
__oss << LvArray::system::stackTrace(); \
111+
__oss << LvArray::system::stackTrace( true ); \
112112
std::cout << __oss.str() << std::endl; \
113113
LvArray::system::abort(); \
114114
} \

0 commit comments

Comments
 (0)