Author: Michael Buch Date: 2025-03-07T07:09:18Z New Revision: 39a4da20d88d797824f0e7be0f732ccaf0c7eee4
URL: https://github.com/llvm/llvm-project/commit/39a4da20d88d797824f0e7be0f732ccaf0c7eee4 DIFF: https://github.com/llvm/llvm-project/commit/39a4da20d88d797824f0e7be0f732ccaf0c7eee4.diff LOG: [lldb][asan] Add temporary logging to ReportRetriever `TestReportData.py` is failing on the macOS CI with: ``` Traceback (most recent call last): File "/Users/ec2-user/jenkins/workspace/llvm.org/lldb-cmake/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 1784, in test_method return attrvalue(self) File "/Users/ec2-user/jenkins/workspace/llvm.org/lldb-cmake/llvm-project/lldb/packages/Python/lldbsuite/test/decorators.py", line 148, in wrapper return func(*args, **kwargs) File "/Users/ec2-user/jenkins/workspace/llvm.org/lldb-cmake/llvm-project/lldb/test/API/functionalities/asan/TestReportData.py", line 28, in test_libsanitizers_asan self.asan_tests(libsanitizers=True) File "/Users/ec2-user/jenkins/workspace/llvm.org/lldb-cmake/llvm-project/lldb/test/API/functionalities/asan/TestReportData.py", line 60, in asan_tests self.expect( File "/Users/ec2-user/jenkins/workspace/llvm.org/lldb-cmake/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 2490, in expect self.fail(log_msg) AssertionError: Ran command: "thread list" Got output: Process 3474 stopped * thread #1: tid = 0x38b5e9, 0x00007ff80f563b52 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT Expecting sub string: "stopped" (was found) Expecting sub string: "stop reason = Use of deallocated memory" (was not found) Process should be stopped due to ASan report ``` There isn't much to go off of in the log, so adding more to help us debug this. Added: Modified: lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp lldb/test/API/functionalities/asan/TestReportData.py Removed: ################################################################################ diff --git a/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp b/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp index 96489248022eb..006d8aa9b4dbe 100644 --- a/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp +++ b/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp @@ -14,6 +14,7 @@ #include "lldb/Core/Module.h" #include "lldb/Expression/UserExpression.h" #include "lldb/Target/InstrumentationRuntimeStopInfo.h" +#include "lldb/Utility/LLDBLog.h" #include "lldb/ValueObject/ValueObject.h" using namespace lldb; @@ -84,6 +85,8 @@ ReportRetriever::RetrieveReportData(const ProcessSP process_sp) { options.SetLanguage(eLanguageTypeObjC_plus_plus); if (auto m = GetPreferredAsanModule(process_sp->GetTarget())) { + LLDB_LOGF(GetLog(LLDBLog::Expressions), "Using preferred ASAN module: %s", + m->GetFileSpec().GetFilename().AsCString("")); SymbolContextList sc_list; sc_list.Append(SymbolContext(std::move(m))); options.SetPreferredSymbolContexts(std::move(sc_list)); @@ -105,11 +108,16 @@ ReportRetriever::RetrieveReportData(const ProcessSP process_sp) { return StructuredData::ObjectSP(); } + LLDB_LOGF(GetLog(LLDBLog::Expressions), + "Successfully ran ASAN report retriever utility expression"); + int present = return_value_sp->GetValueForExpressionPath(".present") ->GetValueAsUnsigned(0); if (present != 1) return StructuredData::ObjectSP(); + LLDB_LOGF(GetLog(LLDBLog::Expressions), "Retrieving report.1"); + addr_t pc = return_value_sp->GetValueForExpressionPath(".pc")->GetValueAsUnsigned(0); addr_t bp = @@ -135,6 +143,8 @@ ReportRetriever::RetrieveReportData(const ProcessSP process_sp) { if (!dict) return StructuredData::ObjectSP(); + LLDB_LOGF(GetLog(LLDBLog::Expressions), "Retrieving report.2"); + dict->AddStringItem("instrumentation_class", "AddressSanitizer"); dict->AddStringItem("stop_type", "fatal_error"); dict->AddIntegerItem("pc", pc); diff --git a/lldb/test/API/functionalities/asan/TestReportData.py b/lldb/test/API/functionalities/asan/TestReportData.py index 5e4c179e2a481..29bdf1fac8e73 100644 --- a/lldb/test/API/functionalities/asan/TestReportData.py +++ b/lldb/test/API/functionalities/asan/TestReportData.py @@ -38,6 +38,9 @@ def setUp(self): self.col_crash = 16 def asan_tests(self, libsanitizers=False): + if libsanitizers: + self.runCmd("log enable lldb expr") + target = self.createTestTarget() if libsanitizers: _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits