Column handling fixes
This commit is contained in:
parent
209ce45157
commit
ddcfbe0a88
@ -38,7 +38,7 @@ namespace detail {
|
|||||||
if(result[i].line == 0) {
|
if(result[i].line == 0) {
|
||||||
result[i].line = trace[i].line;
|
result[i].line = trace[i].line;
|
||||||
}
|
}
|
||||||
if(result[i].column == 0) {
|
if(result[i].column == UINT_LEAST32_MAX) {
|
||||||
result[i].column = trace[i].column;
|
result[i].column = trace[i].column;
|
||||||
}
|
}
|
||||||
if(result[i].filename.empty()) {
|
if(result[i].filename.empty()) {
|
||||||
@ -51,7 +51,7 @@ namespace detail {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::vector<stacktrace_frame> resolve_frames(const std::vector<object_frame>& frames) {
|
std::vector<stacktrace_frame> resolve_frames(const std::vector<object_frame>& frames) {
|
||||||
std::vector<stacktrace_frame> trace(frames.size());
|
std::vector<stacktrace_frame> trace(frames.size(), stacktrace_frame { 0, 0, UINT_LEAST32_MAX, "", "" });
|
||||||
#if defined(CPPTRACE_GET_SYMBOLS_WITH_LIBDL) \
|
#if defined(CPPTRACE_GET_SYMBOLS_WITH_LIBDL) \
|
||||||
|| defined(CPPTRACE_GET_SYMBOLS_WITH_DBGHELP) \
|
|| defined(CPPTRACE_GET_SYMBOLS_WITH_DBGHELP) \
|
||||||
|| defined(CPPTRACE_GET_SYMBOLS_WITH_LIBBACKTRACE)
|
|| defined(CPPTRACE_GET_SYMBOLS_WITH_LIBBACKTRACE)
|
||||||
@ -87,7 +87,7 @@ namespace detail {
|
|||||||
|| defined(CPPTRACE_GET_SYMBOLS_WITH_ADDR2LINE)
|
|| defined(CPPTRACE_GET_SYMBOLS_WITH_ADDR2LINE)
|
||||||
auto dlframes = get_frames_object_info(frames);
|
auto dlframes = get_frames_object_info(frames);
|
||||||
#endif
|
#endif
|
||||||
std::vector<stacktrace_frame> trace(frames.size());
|
std::vector<stacktrace_frame> trace(frames.size(), stacktrace_frame { 0, 0, UINT_LEAST32_MAX, "", "" });
|
||||||
#ifdef CPPTRACE_GET_SYMBOLS_WITH_LIBDL
|
#ifdef CPPTRACE_GET_SYMBOLS_WITH_LIBDL
|
||||||
apply_trace(trace, libdl::resolve_frames(frames));
|
apply_trace(trace, libdl::resolve_frames(frames));
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -1014,7 +1014,7 @@ namespace libdwarf {
|
|||||||
|
|
||||||
CPPTRACE_FORCE_NO_INLINE_FOR_PROFILING
|
CPPTRACE_FORCE_NO_INLINE_FOR_PROFILING
|
||||||
stacktrace_frame resolve_frame(const object_frame& frame_info) {
|
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.filename = frame_info.obj_path;
|
||||||
frame.symbol = frame_info.symbol;
|
frame.symbol = frame_info.symbol;
|
||||||
frame.address = frame_info.raw_address;
|
frame.address = frame_info.raw_address;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user