Author: lanza Date: Mon Nov 5 14:55:30 2018 New Revision: 346179 URL: http://llvm.org/viewvc/llvm-project?rev=346179&view=rev Log: Adjust the comment section of CreateSource to account for lines longer than 60
Summary: On rare occasions, the address, instruction and arguments of a line of assembly in the CreateSource printout would reach > 60 characters. The function would integer overflow and try to indent a line by `0xfff...`. Change the calculated offset to be the maximum of 60 or `line_strm.str().size()` Reviewers: clayborg, xiaobai Reviewed By: clayborg Differential Revision: https://reviews.llvm.org/D52745 Modified: lldb/trunk/tools/lldb-vscode/JSONUtils.cpp Modified: lldb/trunk/tools/lldb-vscode/JSONUtils.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-vscode/JSONUtils.cpp?rev=346179&r1=346178&r2=346179&view=diff ============================================================================== --- lldb/trunk/tools/lldb-vscode/JSONUtils.cpp (original) +++ lldb/trunk/tools/lldb-vscode/JSONUtils.cpp Mon Nov 5 14:55:30 2018 @@ -7,6 +7,8 @@ // //===----------------------------------------------------------------------===// +#include <algorithm> + #include "llvm/Support/FormatAdapters.h" #include "lldb/API/SBBreakpoint.h" @@ -541,8 +543,10 @@ llvm::json::Value CreateSource(lldb::SBF line_strm << llvm::formatv("{0:X+}: <{1}> {2} {3,12} {4}", inst_addr, inst_offset, llvm::fmt_repeat(' ', spaces), m, o); - const uint32_t comment_row = 60; - // If there is a comment append it starting at column 60 + + // If there is a comment append it starting at column 60 or after one + // space past the last char + const uint32_t comment_row = std::max(line_strm.str().size(), (size_t)60); if (c && c[0]) { if (line.size() < comment_row) line_strm.indent(comment_row - line_strm.str().size()); _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits