[Lldb-commits] [lldb] [lldb] Start using formatv() in RegisterContextUnwind (NFCI) (PR #191576)

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Mon Apr 13 08:49:06 PDT 2026


================
@@ -60,6 +60,16 @@ static bool CallFrameAddressIsValid(ABISP abi_sp, lldb::addr_t cfa) {
   return cfa != 0 && cfa != 1;
 }
 
+#define UNWIND_LOG(log, ...)                                                   \
+  LLDB_LOG(log, "{0}th{1}/fr{2} {3}",                                          \
+           llvm::indent(std::min(m_frame_number, 100U)),                       \
+           m_thread.GetIndexID(), m_frame_number, llvm::formatv(__VA_ARGS__))
+
+#define UNWIND_LOG_VERBOSE(log, ...)                                           \
+  LLDB_LOG_VERBOSE(                                                            \
+      log, "{0}th{1}/fr{2} {3}", llvm::indent(std::min(m_frame_number, 100U)), \
+      m_thread.GetIndexID(), m_frame_number, llvm::formatv(__VA_ARGS__))
----------------
DavidSpickett wrote:

Ideally we would only write the suffix format and its arguments once.

Untested possible solution to that:
```
#define UNWIND_LOG_IMPL(LOG_FN, log, ...)                                      \
  LOG_FN(log, "{0}th{1}/fr{2} {3}",                                            \
         llvm::indent(std::min(m_frame_number, 100U)),                         \
         m_thread.GetIndexID(), m_frame_number,                                \
         llvm::formatv(__VA_ARGS__))

#define UNWIND_LOG(log, ...) \
  UNWIND_LOG_IMPL(LLDB_LOG, log, __VA_ARGS__)

#define UNWIND_LOG_VERBOSE(log, ...) \
  UNWIND_LOG_IMPL(LLDB_LOG_VERBOSE, log, __VA_ARGS__)
```

If not, they are right next to each other, so it's not a big deal if we write it twice.

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


More information about the lldb-commits mailing list