diff --git a/src/symbols/symbols_core.cpp b/src/symbols/symbols_core.cpp index 3726758..0ab9025 100644 --- a/src/symbols/symbols_core.cpp +++ b/src/symbols/symbols_core.cpp @@ -38,7 +38,7 @@ namespace detail { if(result[i].line == 0) { result[i].line = trace[i].line; } - if(result[i].column == 0) { + if(result[i].column == UINT_LEAST32_MAX) { result[i].column = trace[i].column; } if(result[i].filename.empty()) { @@ -51,7 +51,7 @@ namespace detail { } std::vector resolve_frames(const std::vector& frames) { - std::vector trace(frames.size()); + std::vector trace(frames.size(), stacktrace_frame { 0, 0, UINT_LEAST32_MAX, "", "" }); #if defined(CPPTRACE_GET_SYMBOLS_WITH_LIBDL) \ || defined(CPPTRACE_GET_SYMBOLS_WITH_DBGHELP) \ || defined(CPPTRACE_GET_SYMBOLS_WITH_LIBBACKTRACE) @@ -87,7 +87,7 @@ namespace detail { || defined(CPPTRACE_GET_SYMBOLS_WITH_ADDR2LINE) auto dlframes = get_frames_object_info(frames); #endif - std::vector trace(frames.size()); + std::vector trace(frames.size(), stacktrace_frame { 0, 0, UINT_LEAST32_MAX, "", "" }); #ifdef CPPTRACE_GET_SYMBOLS_WITH_LIBDL apply_trace(trace, libdl::resolve_frames(frames)); #endif diff --git a/src/symbols/symbols_with_libdwarf.cpp b/src/symbols/symbols_with_libdwarf.cpp index 08fbecb..5095bd0 100644 --- a/src/symbols/symbols_with_libdwarf.cpp +++ b/src/symbols/symbols_with_libdwarf.cpp @@ -1014,7 +1014,7 @@ namespace libdwarf { CPPTRACE_FORCE_NO_INLINE_FOR_PROFILING stacktrace_frame resolve_frame(const object_frame& frame_info) { - stacktrace_frame frame{}; + stacktrace_frame frame { 0, 0, UINT_LEAST32_MAX, "", "" }; frame.filename = frame_info.obj_path; frame.symbol = frame_info.symbol; frame.address = frame_info.raw_address;