[Lldb-commits] [PATCH] D150639: [lldb] Define lldbassert based on NDEBUG instead of LLDB_CONFIGURATION_DEBUG

Jonas Devlieghere via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue May 16 09:16:48 PDT 2023


JDevlieghere added a comment.

In D150639#4346009 <https://reviews.llvm.org/D150639#4346009>, @rupprecht wrote:

> +1 to being surprised this is not already the case
>
> Some other places should be updated after this, e.g. lldb/source/Symbol/SymbolFile.cpp also has a use that can be trivially updated:
>
>   #if defined(LLDB_CONFIGURATION_DEBUG)
>     // We assert that we have to module lock by trying to acquire the lock from a
>     // different thread. Note that we must abort if the result is true to
>     // guarantee correctness.
>     assert(std::async(
>                std::launch::async,
>                [this] {
>                  return this->GetModuleMutex().try_lock();
>                }).get() == false &&
>            "Module is not locked");
>   #endif
>
> -> just wrap it in lldbassert

This code actually has a comment right above it explaining that it's too expensive to do in release builds, so this isn't a good candidate for `lldbassert`. But this logic can be improved: it duplicates checking the `LLDB_CONFIGURATION_DEBUG` in both `ASSERT_MODULE_LOCK` and `AssertModuleLock` and should use `NDEBUG` too. I'll address that in a separate patch.

> In D150639#4344695 <https://reviews.llvm.org/D150639#4344695>, @JDevlieghere wrote:
>
>> This patch also uses `__FILE_NAME__` (Clang-specific extension that functions similar to __FILE__ but only renders the last path component (the filename) instead of an invocation dependent full path to that file.) when building with clang.
>
> Can you put this comment in `LLDBAssert.h` itself?

Good idea.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D150639/new/

https://reviews.llvm.org/D150639



More information about the lldb-commits mailing list