[Lldb-commits] [lldb] 7ea5f19 - [lldb] Rename lldb_assert -> _lldb_assert (NFC) (#123225)
via lldb-commits
lldb-commits at lists.llvm.org
Thu Jan 16 13:31:40 PST 2025
Author: Jonas Devlieghere
Date: 2025-01-16T13:31:35-08:00
New Revision: 7ea5f195039ba357285076043ad381ed22e3842e
URL: https://github.com/llvm/llvm-project/commit/7ea5f195039ba357285076043ad381ed22e3842e
DIFF: https://github.com/llvm/llvm-project/commit/7ea5f195039ba357285076043ad381ed22e3842e.diff
LOG: [lldb] Rename lldb_assert -> _lldb_assert (NFC) (#123225)
Rename `lldb_assert` to `_lldb_assert` to make it more obvious that you
shouldn't be using this function directly. Instead, you should use the
`lldbassert` macro which becomes a regular assert in a debug/asserts
build.
Added:
Modified:
lldb/include/lldb/Utility/LLDBAssert.h
lldb/source/Utility/LLDBAssert.cpp
Removed:
################################################################################
diff --git a/lldb/include/lldb/Utility/LLDBAssert.h b/lldb/include/lldb/Utility/LLDBAssert.h
index aeef3e51e20a87..21dbdb3b3202d4 100644
--- a/lldb/include/lldb/Utility/LLDBAssert.h
+++ b/lldb/include/lldb/Utility/LLDBAssert.h
@@ -19,24 +19,30 @@
// __FILE__ but only renders the last path component (the filename) instead of
// an invocation dependent full path to that file.
#define lldbassert(x) \
- lldb_private::lldb_assert(static_cast<bool>(x), #x, __FUNCTION__, \
- __FILE_NAME__, __LINE__)
+ lldb_private::_lldb_assert(static_cast<bool>(x), #x, __FUNCTION__, \
+ __FILE_NAME__, __LINE__)
#else
#define lldbassert(x) \
- lldb_private::lldb_assert(static_cast<bool>(x), #x, __FUNCTION__, __FILE__, \
- __LINE__)
+ lldb_private::_lldb_assert(static_cast<bool>(x), #x, __FUNCTION__, __FILE__, \
+ __LINE__)
#endif
#endif
namespace lldb_private {
-void lldb_assert(bool expression, const char *expr_text, const char *func,
- const char *file, unsigned int line);
+/// Don't use _lldb_assert directly. Use the lldbassert macro instead so that
+/// LLDB asserts become regular asserts in NDEBUG builds.
+void _lldb_assert(bool expression, const char *expr_text, const char *func,
+ const char *file, unsigned int line);
+
+/// The default LLDB assert callback, which prints to stderr.
typedef void (*LLDBAssertCallback)(llvm::StringRef message,
llvm::StringRef backtrace,
llvm::StringRef prompt);
+/// Replace the LLDB assert callback.
void SetLLDBAssertCallback(LLDBAssertCallback callback);
+
} // namespace lldb_private
#endif // LLDB_UTILITY_LLDBASSERT_H
diff --git a/lldb/source/Utility/LLDBAssert.cpp b/lldb/source/Utility/LLDBAssert.cpp
index b0c39a284910b1..3a1874ac2a9dc4 100644
--- a/lldb/source/Utility/LLDBAssert.cpp
+++ b/lldb/source/Utility/LLDBAssert.cpp
@@ -20,6 +20,7 @@
namespace lldb_private {
+/// The default callback prints to stderr.
static void DefaultAssertCallback(llvm::StringRef message,
llvm::StringRef backtrace,
llvm::StringRef prompt) {
@@ -31,8 +32,8 @@ static void DefaultAssertCallback(llvm::StringRef message,
static std::atomic<LLDBAssertCallback> g_lldb_assert_callback =
&DefaultAssertCallback;
-void lldb_assert(bool expression, const char *expr_text, const char *func,
- const char *file, unsigned int line) {
+void _lldb_assert(bool expression, const char *expr_text, const char *func,
+ const char *file, unsigned int line) {
if (LLVM_LIKELY(expression))
return;
@@ -44,8 +45,6 @@ void lldb_assert(bool expression, const char *expr_text, const char *func,
}
#endif
- // Print a warning and encourage the user to file a bug report, similar to
- // LLVM’s crash handler, and then return execution.
std::string buffer;
llvm::raw_string_ostream backtrace(buffer);
llvm::sys::PrintStackTrace(backtrace);
@@ -54,7 +53,7 @@ void lldb_assert(bool expression, const char *expr_text, const char *func,
llvm::formatv("Assertion failed: ({0}), function {1}, file {2}, line {3}",
expr_text, func, file, line)
.str(),
- buffer,
+ backtrace.str(),
"Please file a bug report against lldb reporting this failure log, and "
"as many details as possible");
}
More information about the lldb-commits
mailing list