diff --git a/include/cpptrace/cpptrace.hpp b/include/cpptrace/cpptrace.hpp index d858621..5b522e8 100644 --- a/include/cpptrace/cpptrace.hpp +++ b/include/cpptrace/cpptrace.hpp @@ -56,7 +56,7 @@ namespace cpptrace { struct stacktrace_frame { uintptr_t address; std::uint_least32_t line; - std::uint_least32_t column = UINT_LEAST32_MAX; // UINT_LEAST32_MAX if not present + std::uint_least32_t column; // UINT_LEAST32_MAX if not present std::string filename; std::string symbol; bool operator==(const stacktrace_frame& other) const { diff --git a/src/symbols/symbols_with_addr2line.cpp b/src/symbols/symbols_with_addr2line.cpp index b9b8013..e0085db 100644 --- a/src/symbols/symbols_with_addr2line.cpp +++ b/src/symbols/symbols_with_addr2line.cpp @@ -267,7 +267,7 @@ namespace addr2line { std::vector resolve_frames(const std::vector& frames) { // TODO: Refactor better - std::vector trace(frames.size()); + std::vector trace(frames.size(), stacktrace_frame { 0, 0, UINT_LEAST32_MAX, "", "" }); for(size_t i = 0; i < frames.size(); i++) { trace[i].address = frames[i].raw_address; // Set what is known for now, and resolutions from addr2line should overwrite diff --git a/src/symbols/symbols_with_libbacktrace.cpp b/src/symbols/symbols_with_libbacktrace.cpp index e4c86fa..412e615 100644 --- a/src/symbols/symbols_with_libbacktrace.cpp +++ b/src/symbols/symbols_with_libbacktrace.cpp @@ -59,6 +59,7 @@ namespace libbacktrace { // TODO: Handle backtrace_pcinfo calling the callback multiple times on inlined functions stacktrace_frame resolve_frame(const uintptr_t addr) { stacktrace_frame frame; + frame.column = UINT_LEAST32_MAX; backtrace_pcinfo( get_backtrace_state(), addr, diff --git a/src/symbols/symbols_with_libdwarf.cpp b/src/symbols/symbols_with_libdwarf.cpp index e537a03..08fbecb 100644 --- a/src/symbols/symbols_with_libdwarf.cpp +++ b/src/symbols/symbols_with_libdwarf.cpp @@ -1037,7 +1037,7 @@ namespace libdwarf { CPPTRACE_FORCE_NO_INLINE_FOR_PROFILING 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, "", "" }); for(const auto& obj_entry : collate_frames(frames, trace)) { const auto& obj_name = obj_entry.first; dwarf_resolver resolver(obj_name); diff --git a/src/symbols/symbols_with_nothing.cpp b/src/symbols/symbols_with_nothing.cpp index 35f802f..e89234e 100644 --- a/src/symbols/symbols_with_nothing.cpp +++ b/src/symbols/symbols_with_nothing.cpp @@ -9,11 +9,11 @@ namespace cpptrace { namespace detail { namespace nothing { std::vector resolve_frames(const std::vector& frames) { - return std::vector(frames.size()); + return std::vector(frames.size(), stacktrace_frame { 0, 0, UINT_LEAST32_MAX, "", "" }); } std::vector resolve_frames(const std::vector& frames) { - return std::vector(frames.size()); + return std::vector(frames.size(), stacktrace_frame { 0, 0, UINT_LEAST32_MAX, "", "" }); } } }