[Lldb-commits] [lldb] r346179 - Adjust the comment section of CreateSource to account for lines longer than 60

Nathan Lanza via lldb-commits lldb-commits at lists.llvm.org
Mon Nov 5 14:55:30 PST 2018


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());




More information about the lldb-commits mailing list