[Lldb-commits] [lldb] Colorize output when searching for symbols in lldb (PR #69422)

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Mon Nov 6 07:33:50 PST 2023


================
@@ -1548,14 +1566,29 @@ static uint32_t LookupSymbolInModule(CommandInterpreter &interpreter,
       Symbol *symbol = symtab->SymbolAtIndex(match_indexes[i]);
       if (symbol) {
         if (symbol->ValueIsAddress()) {
+          // Using the new dump function to add colors in the summary.
+          if (name && use_color){
           DumpAddress(
+              interpreter.GetExecutionContext().GetBestExecutionContextScope(),
+              symbol->GetAddressRef(), verbose, all_ranges, strm, name);
+          }
+          else{
+            DumpAddress(
               interpreter.GetExecutionContext().GetBestExecutionContextScope(),
               symbol->GetAddressRef(), verbose, all_ranges, strm);
+          }
----------------
DavidSpickett wrote:

This can be simplified to:
```
            DumpAddress(
              interpreter.GetExecutionContext().GetBestExecutionContextScope(),
              symbol->GetAddressRef(), verbose, all_ranges, strm,
              name && use_color ? name : nullptr);
```

If you haven't seen it before, the "in line if" is called the "ternary operator". https://www.w3schools.com/cpp/cpp_conditions_shorthand.asp

What you could even do is very early in the function say "if no colour, set name to nullptr". Then any subsequent call using `name`, can just be passed `name` not `name && use_color ? name : nullptr`.

```
// If color is disabled, we have no use for the search pattern.
name = use_color && name ? name : nullptr;
```

https://github.com/llvm/llvm-project/pull/69422


More information about the lldb-commits mailing list