Skip to content

[SPIR-V] Fix environment resolution causing legalization crash#179052

Merged
MrSidims merged 11 commits intollvm:mainfrom
MrSidims:is-shader-spirv
Feb 4, 2026
Merged

[SPIR-V] Fix environment resolution causing legalization crash#179052
MrSidims merged 11 commits intollvm:mainfrom
MrSidims:is-shader-spirv

Conversation

@MrSidims
Copy link
Copy Markdown
Contributor

When the triple is spirv-unknown-unknown, SPIRVSubtarget::Env starts as Unknown and was set via const_cast in SPIRVCallLowering when the first entry point was lowered. This is too late: SPIRVLegalizerInfo has already been constructed with, for example, the wrong vector size limits, causing a crash (at best) or invalid SPIR-V generation.

Resolve the environment early in SPIRVPrepareFunctions::runOnModule() by scanning the module for "hlsl.shader" attributes. Reinitialize the legalizer and extended instruction sets after resolution. Remove the const_cast lazy setting from SPIRVCallLowering.

Fixes: #171898

When the triple is spirv-unknown-unknown, SPIRVSubtarget::Env starts as
Unknown and was set via const_cast in SPIRVCallLowering when the
first entry point was lowered. This is too late: SPIRVLegalizerInfo has
already been constructed with, for example, the wrong vector size limits,
causing a crash (at best) or invalid SPIR-V generation.

Resolve the environment early in SPIRVPrepareFunctions::runOnModule() by
scanning the module for "hlsl.shader" attributes. Reinitialize the
legalizer and extended instruction sets after resolution. Remove the
const_cast lazy setting from SPIRVCallLowering.
@llvmbot
Copy link
Copy Markdown
Member

llvmbot commented Jan 31, 2026

@llvm/pr-subscribers-backend-spir-v

Author: Dmitry Sidorov (MrSidims)

Changes

When the triple is spirv-unknown-unknown, SPIRVSubtarget::Env starts as Unknown and was set via const_cast in SPIRVCallLowering when the first entry point was lowered. This is too late: SPIRVLegalizerInfo has already been constructed with, for example, the wrong vector size limits, causing a crash (at best) or invalid SPIR-V generation.

Resolve the environment early in SPIRVPrepareFunctions::runOnModule() by scanning the module for "hlsl.shader" attributes. Reinitialize the legalizer and extended instruction sets after resolution. Remove the const_cast lazy setting from SPIRVCallLowering.

Fixes: #171898


Full diff: https://github.com/llvm/llvm-project/pull/179052.diff

6 Files Affected:

  • (modified) llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp (+5-34)
  • (modified) llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp (+6)
  • (modified) llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp (+19)
  • (modified) llvm/lib/Target/SPIRV/SPIRVSubtarget.h (+8-5)
  • (modified) llvm/lib/Target/SPIRV/SPIRVTargetMachine.h (+2)
  • (added) llvm/test/CodeGen/SPIRV/is-shader-env.ll (+25)
diff --git a/llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp b/llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
index 23c5798f9d0af..dff9b4a48564b 100644
--- a/llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
@@ -221,41 +221,17 @@ static SPIRVType *getArgSPIRVType(const Function &F, unsigned ArgIdx,
 
 static SPIRV::ExecutionModel::ExecutionModel
 getExecutionModel(const SPIRVSubtarget &STI, const Function &F) {
+  assert(STI.getEnv() != SPIRVSubtarget::Unknown &&
+         "Environment must be resolved before lowering entry points. ");
+
   if (STI.isKernel())
     return SPIRV::ExecutionModel::Kernel;
 
-  if (STI.isShader()) {
-    auto attribute = F.getFnAttribute("hlsl.shader");
-    if (!attribute.isValid()) {
-      report_fatal_error(
-          "This entry point lacks mandatory hlsl.shader attribute.");
-    }
-
-    const auto value = attribute.getValueAsString();
-    if (value == "compute")
-      return SPIRV::ExecutionModel::GLCompute;
-    if (value == "vertex")
-      return SPIRV::ExecutionModel::Vertex;
-    if (value == "pixel")
-      return SPIRV::ExecutionModel::Fragment;
-
-    report_fatal_error(
-        "This HLSL entry point is not supported by this backend.");
-  }
-
-  assert(STI.getEnv() == SPIRVSubtarget::Unknown);
-  // "hlsl.shader" attribute is mandatory for Vulkan, so we can set Env to
-  // Shader whenever we find it, and to Kernel otherwise.
-
-  // We will now change the Env based on the attribute, so we need to strip
-  // `const` out of the ref to STI.
-  SPIRVSubtarget *NonConstSTI = const_cast<SPIRVSubtarget *>(&STI);
   auto attribute = F.getFnAttribute("hlsl.shader");
   if (!attribute.isValid()) {
-    NonConstSTI->setEnv(SPIRVSubtarget::Kernel);
-    return SPIRV::ExecutionModel::Kernel;
+    report_fatal_error(
+        "This entry point lacks mandatory hlsl.shader attribute.");
   }
-  NonConstSTI->setEnv(SPIRVSubtarget::Shader);
 
   const auto value = attribute.getValueAsString();
   if (value == "compute")
@@ -432,11 +408,6 @@ bool SPIRVCallLowering::lowerFormalArguments(MachineIRBuilder &MIRBuilder,
 
   // Handle entry points and function linkage.
   if (isEntryPoint(F)) {
-    // EntryPoints can help us to determine the environment we're working on.
-    // Therefore, we need a non-const pointer to SPIRVSubtarget to update the
-    // environment if we need to.
-    const SPIRVSubtarget *ST =
-        static_cast<const SPIRVSubtarget *>(&MIRBuilder.getMF().getSubtarget());
     auto MIB = MIRBuilder.buildInstr(SPIRV::OpEntryPoint)
                    .addImm(static_cast<uint32_t>(getExecutionModel(*ST, F)))
                    .addUse(FuncVReg);
diff --git a/llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp b/llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
index a3425704f050d..1aedab4e94048 100644
--- a/llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
@@ -656,6 +656,12 @@ bool SPIRVPrepareFunctions::removeAggregateTypesFromCalls(Function *F) {
 }
 
 bool SPIRVPrepareFunctions::runOnModule(Module &M) {
+  // Resolve the SPIR-V environment from module content before any
+  // function-level processing. This must happen before legalization so that
+  // isShader()/isKernel() return correct values.
+  const_cast<SPIRVTargetMachine &>(TM).getMutableSubtargetImpl()
+      ->resolveEnvFromModule(M);
+
   bool Changed = false;
   for (Function &F : M) {
     Changed |= substituteIntrinsicCalls(&F);
diff --git a/llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp b/llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp
index ad6c9cd421b7c..7e1a41dcb2276 100644
--- a/llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp
@@ -173,6 +173,25 @@ void SPIRVSubtarget::initAvailableExtInstSets() {
   accountForAMDShaderTrinaryMinmax();
 }
 
+void SPIRVSubtarget::resolveEnvFromModule(const Module &M) {
+  if (Env != Unknown)
+    return;
+
+  bool HasShaderAttr = false;
+  for (const Function &F : M) {
+    if (F.getFnAttribute("hlsl.shader").isValid()) {
+      HasShaderAttr = true;
+      break;
+    }
+  }
+
+  Env = HasShaderAttr ? Shader : Kernel;
+
+  // Reinitialize Env-dependent state: ext inst sets and legalizer info.
+  initAvailableExtInstSets();
+  Legalizer = std::make_unique<SPIRVLegalizerInfo>(*this);
+}
+
 // Set available extensions after SPIRVSubtarget is created.
 void SPIRVSubtarget::initAvailableExtensions(
     const std::set<SPIRV::Extension::Extension> &AllowedExtIds) {
diff --git a/llvm/lib/Target/SPIRV/SPIRVSubtarget.h b/llvm/lib/Target/SPIRV/SPIRVSubtarget.h
index ad3e38d296ed7..01888adf88fbb 100644
--- a/llvm/lib/Target/SPIRV/SPIRVSubtarget.h
+++ b/llvm/lib/Target/SPIRV/SPIRVSubtarget.h
@@ -25,6 +25,7 @@
 #include "llvm/CodeGen/SelectionDAGTargetInfo.h"
 #include "llvm/CodeGen/TargetSubtargetInfo.h"
 #include "llvm/IR/DataLayout.h"
+#include "llvm/IR/Module.h"
 #include "llvm/Target/TargetMachine.h"
 #include "llvm/TargetParser/Triple.h"
 
@@ -62,9 +63,6 @@ class SPIRVSubtarget : public SPIRVGenSubtargetInfo {
   std::unique_ptr<InstructionSelector> InstSelector;
   std::unique_ptr<InlineAsmLowering> InlineAsmInfo;
 
-  // TODO: Initialise the available extensions, extended instruction sets
-  // based on the environment settings.
-  void initAvailableExtInstSets();
   void accountForAMDShaderTrinaryMinmax();
 
 public:
@@ -76,6 +74,11 @@ class SPIRVSubtarget : public SPIRVGenSubtargetInfo {
 
   void initAvailableExtensions(
       const std::set<SPIRV::Extension::Extension> &AllowedExtIds);
+  void initAvailableExtInstSets();
+
+  // If Env is Unknown, scan module for "hlsl.shader" attributes to resolve it.
+  // Must be called before any pass that depends on isShader()/isKernel().
+  void resolveEnvFromModule(const Module &M);
 
   // Parses features string setting specified subtarget options.
   // The definition of this function is auto generated by tblgen.
@@ -86,8 +89,8 @@ class SPIRVSubtarget : public SPIRVGenSubtargetInfo {
   void setEnv(SPIRVEnvType E) {
     if (E == Unknown)
       report_fatal_error("Unknown environment is not allowed.");
-    if (Env != Unknown)
-      report_fatal_error("Environment is already set.");
+    if (Env != Unknown && Env != E)
+      report_fatal_error("Environment is already set to a different value.");
 
     Env = E;
   }
diff --git a/llvm/lib/Target/SPIRV/SPIRVTargetMachine.h b/llvm/lib/Target/SPIRV/SPIRVTargetMachine.h
index 9c59d021dfc1b..ea09fe98c55ee 100644
--- a/llvm/lib/Target/SPIRV/SPIRVTargetMachine.h
+++ b/llvm/lib/Target/SPIRV/SPIRVTargetMachine.h
@@ -35,6 +35,8 @@ class SPIRVTargetMachine : public CodeGenTargetMachineImpl {
     return &Subtarget;
   }
 
+  SPIRVSubtarget *getMutableSubtargetImpl() { return &Subtarget; }
+
   TargetTransformInfo getTargetTransformInfo(const Function &F) const override;
 
   TargetPassConfig *createPassConfig(PassManagerBase &PM) override;
diff --git a/llvm/test/CodeGen/SPIRV/is-shader-env.ll b/llvm/test/CodeGen/SPIRV/is-shader-env.ll
new file mode 100644
index 0000000000000..47a323ded0df5
--- /dev/null
+++ b/llvm/test/CodeGen/SPIRV/is-shader-env.ll
@@ -0,0 +1,25 @@
+; RUN: llc -O0 -mtriple=spirv-unknown-unknown %s -o - | FileCheck %s
+; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-unknown-unknown %s -o - -filetype=obj | spirv-val %}
+
+; Regression test for https://github.com/llvm/llvm-project/issues/171898
+; When triple is spirv-unknown-unknown and a non-entry-point function using
+; wide vectors (e.g. <8 x i32>) appears before the entry point with
+; hlsl.shader attribute, the environment must be resolved early enough that
+; legalization uses the correct vector size limits.
+
+; CHECK-DAG: OpCapability Shader
+; CHECK-DAG: OpEntryPoint GLCompute %[[#entry:]] "main"
+
+define <4 x i32> @helper(<4 x i32> %a, <4 x i32> %b) {
+entry:
+  %result = add <4 x i32> %a, %b
+  ret <4 x i32> %result
+}
+
+define void @main() #0 {
+entry:
+  %a = call <4 x i32> @helper(<4 x i32> <i32 1, i32 2, i32 3, i32 4>, <4 x i32> <i32 5, i32 6, i32 7, i32 8>)
+  ret void
+}
+
+attributes #0 = { "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" }

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jan 31, 2026

✅ With the latest revision this PR passed the C/C++ code formatter.

Copy link
Copy Markdown
Contributor

@maarquitos14 maarquitos14 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Just one question: do we expect this to have any impact in performance? We're now going through functions once more.


bool HasShaderAttr = false;
for (const Function &F : M) {
if (F.getFnAttribute("hlsl.shader").isValid()) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not just hasFnAttribute?

I'm not sure if the hlsl.shader validity is enforced through the Verifier, but we could.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just for the context, shouldn't the caller be passing the appropriate target triple (maybe we do not have the right choices and we need to add one more)?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not just hasFnAttribute

My reading is, that the attribute has a string parameter which may or may not be valid. On the other hand, it might be an unnecessary check as it certainly should be checked elsewhere.

Just for the context, shouldn't the caller be passing the appropriate target triple (maybe we do not have the right choices and we need to add one more)?

You mean parent triple, right? Then the question would fall to: "what environment to set in case of unknown-unknown-unknown", which previous logic was trying to address.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, we could force frontend to pick between vulkan and opencl, but who knows, how many spir/spirv producers are there in the wild. and unknown-unknown was kinda a standard for a long time :)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the clarification.

Maybe its something to define better in the future about what "unknown" means (silently inferring shader capabilities sound like a footgun).

Copy link
Copy Markdown
Contributor Author

@MrSidims MrSidims Feb 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may discuss it on the next backend WG meeting (if it wasn't discussed in the past already). FYI @michalpaszkowski . IMHO we must align on and merge #170297 before deprecating unknown-unknown .

@MrSidims
Copy link
Copy Markdown
Contributor Author

MrSidims commented Feb 2, 2026

LGTM. Just one question: do we expect this to have any impact in performance? We're now going through functions once more.

Not something, we should care about, as we iterate only over functions, not instructions.

@MrSidims MrSidims requested a review from s-perron February 2, 2026 23:02
Copy link
Copy Markdown
Contributor

@vmaksimo vmaksimo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just a small comment-style suggestion

Comment thread llvm/lib/Target/SPIRV/SPIRVSubtarget.h Outdated
Copy link
Copy Markdown
Contributor

@s-perron s-perron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing this up. This seems like it is early enough that we should not run into problems. I just have a few suggestions to improve the safety and the test.

Comment thread llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp Outdated
Comment thread llvm/lib/Target/SPIRV/SPIRVSubtarget.h Outdated
Comment on lines 87 to 94
void setEnv(SPIRVEnvType E) {
if (E == Unknown)
report_fatal_error("Unknown environment is not allowed.");
if (Env != Unknown)
report_fatal_error("Environment is already set.");
if (Env != Unknown && Env != E)
report_fatal_error("Environment is already set to a different value.");

Env = E;
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this function called anymore? I think the two calls to the function were removed, and we could simply remove it?

It creates a problem. If someone were to call it the instruction sets would not be reinitialized properly. If we keep it we need to fix that up.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that I think about it more. Can you have this function call initAvailableExtInstSets and reinitialize the legalizer. Then both places that set Env should call this function. Having 1 place that sets Env could help if we find other things that need to be reset based on the env.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, I've made resolveEnvFromModule calling setEnv and also moved initAvailableExtInstSets and set of legalizer info to the setEnv


; Regression test for https://github.com/llvm/llvm-project/issues/171898
; When triple is spirv-unknown-unknown and a non-entry-point function using
; wide vectors (e.g. <8 x i32>) appears before the entry point with
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where is the use of the wide vector? @helper uses on 4xi32.

Copy link
Copy Markdown
Contributor Author

@MrSidims MrSidims Feb 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ehhh, how I ended up with this test? Some odd script put in llvm-reduce script may be? Thanks for spotting!

Comment thread llvm/test/CodeGen/SPIRV/is-shader-env.ll Outdated
Comment thread llvm/test/CodeGen/SPIRV/is-shader-env.ll
Comment on lines +177 to +178
if (Env != Unknown)
return;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we care about the case where the same instance of the backend is used to compile multiple modules that may have different ENVs? I think it is safe to fail in that case because that is generally not supported by an LLVM module anyway. I just want to be sure we make an explicit decision.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we should care, but probably it's a good idea to add an assertion to document in the code our expectations.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Feb 4, 2026

🐧 Linux x64 Test Results

  • 169151 tests passed
  • 3031 tests skipped
  • 1 test failed

Failed Tests

(click on a test name to see its output)

lldb-api

lldb-api.tools/lldb-dap/stopped-events/TestDAP_stopped_events.py
Script:
--
/usr/bin/python3 /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/dotest.py -u CXXFLAGS -u CFLAGS --env LLVM_LIBS_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib --env LLVM_INCLUDE_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/include --env LLVM_TOOLS_DIR=/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin --libcxx-include-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/include/c++/v1 --libcxx-include-target-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/include/x86_64-unknown-linux-gnu/c++/v1 --libcxx-library-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib/x86_64-unknown-linux-gnu --arch x86_64 --build-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex --lldb-module-cache-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/module-cache-lldb/lldb-api --clang-module-cache-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/module-cache-clang/lldb-api --executable /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/lldb --compiler /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang --dsymutil /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/dsymutil --make /usr/bin/gmake --llvm-tools-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin --lldb-obj-root /home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lldb --lldb-libs-dir /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./lib --cmake-build-type Release /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/tools/lldb-dap/stopped-events -p TestDAP_stopped_events.py
--
Exit Code: 1

Command Output (stdout):
--
lldb version 23.0.0git (https://github.com/llvm/llvm-project revision a4cd011dbd11b2b55275f8bed10878de6b1feed2)
  clang revision a4cd011dbd11b2b55275f8bed10878de6b1feed2
  llvm revision a4cd011dbd11b2b55275f8bed10878de6b1feed2
Skipping the following test categories: msvcstl, dsym, pdb, gmodules, debugserver, objc

--
Command Output (stderr):
--
FAIL: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_multiple_breakpoints_same_location (TestDAP_stopped_events.TestDAP_stopped_events.test_multiple_breakpoints_same_location)
========= DEBUG ADAPTER PROTOCOL LOGS =========
[00:33:03.762] (stdio) --> {"command":"initialize","type":"request","arguments":{"adapterID":"lldb-native","clientID":"vscode","columnsStartAt1":true,"linesStartAt1":true,"locale":"en-us","pathFormat":"path","supportsRunInTerminalRequest":true,"supportsVariablePaging":true,"supportsVariableType":true,"supportsStartDebuggingRequest":true,"supportsProgressReporting":true,"supportsInvalidatedEvent":true,"supportsMemoryEvent":true,"$__lldb_sourceInitFile":false},"seq":1}
[00:33:03.762] DAP.cpp:1007 (stdio) queued (command=initialize seq=1)
[00:33:03.762] (stdio) <-- {"body":{"$__lldb_version":"lldb version 23.0.0git (https://github.com/llvm/llvm-project revision a4cd011dbd11b2b55275f8bed10878de6b1feed2)\n  clang revision a4cd011dbd11b2b55275f8bed10878de6b1feed2\n  llvm revision a4cd011dbd11b2b55275f8bed10878de6b1feed2","completionTriggerCharacters":["."," ","\t"],"exceptionBreakpointFilters":[{"description":"C++ Catch","filter":"cpp_catch","label":"C++ Catch","supportsCondition":true},{"description":"C++ Throw","filter":"cpp_throw","label":"C++ Throw","supportsCondition":true},{"description":"Objective-C Catch","filter":"objc_catch","label":"Objective-C Catch","supportsCondition":true},{"description":"Objective-C Throw","filter":"objc_throw","label":"Objective-C Throw","supportsCondition":true}],"supportTerminateDebuggee":true,"supportsBreakpointLocationsRequest":true,"supportsCancelRequest":true,"supportsClipboardContext":true,"supportsCompletionsRequest":true,"supportsConditionalBreakpoints":true,"supportsConfigurationDoneRequest":true,"supportsDataBreakpointBytes":true,"supportsDataBreakpoints":true,"supportsDelayedStackTraceLoading":true,"supportsDisassembleRequest":true,"supportsEvaluateForHovers":true,"supportsExceptionFilterOptions":true,"supportsExceptionInfoRequest":true,"supportsFunctionBreakpoints":true,"supportsHitConditionalBreakpoints":true,"supportsInstructionBreakpoints":true,"supportsLogPoints":true,"supportsModuleSymbolsRequest":true,"supportsModulesRequest":true,"supportsReadMemoryRequest":true,"supportsSetVariable":true,"supportsSteppingGranularity":true,"supportsValueFormattingOptions":true,"supportsWriteMemoryRequest":true},"command":"initialize","request_seq":1,"seq":1,"success":true,"type":"response"}
[00:33:03.764] (stdio) --> {"seq":2,"command":"launch","type":"request","arguments":{"program":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/tools/lldb-dap/stopped-events/TestDAP_stopped_events.test_multiple_breakpoints_same_location/a.out","initCommands":["settings clear --all","settings set symbols.enable-external-lookup false","settings set target.inherit-tcc true","settings set target.disable-aslr false","settings set target.detach-on-error false","settings set target.auto-apply-fixits false","settings set plugin.process.gdb-remote.packet-timeout 60","settings set symbols.clang-modules-cache-path \"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/module-cache-lldb/lldb-api\"","settings set use-color false","settings set show-statusline false"],"disableASLR":false,"enableAutoVariableSummaries":false,"enableSyntheticChildDebugging":false,"displayExtendedBacktrace":false}}
[00:33:03.764] DAP.cpp:1007 (stdio) queued (command=launch seq=2)
[00:33:03.767] (stdio) <-- {"body":{"category":"console","output":"To get started with the debug console try \"<variable>\", \"<lldb-cmd>\" or \"help [<lldb-cmd>]\"\r\n"},"event":"output","seq":2,"type":"event"}
[00:33:03.767] (stdio) <-- {"body":{"category":"console","output":"For more information visit https://lldb.llvm.org/use/lldbdap.html#debug-console.\r\n"},"event":"output","seq":3,"type":"event"}
[00:33:03.767] (stdio) <-- {"body":{"category":"console","output":"Running initCommands:\n"},"event":"output","seq":4,"type":"event"}
[00:33:03.767] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings clear --all\n"},"event":"output","seq":5,"type":"event"}
[00:33:03.767] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set symbols.enable-external-lookup false\n"},"event":"output","seq":6,"type":"event"}
[00:33:03.767] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.inherit-tcc true\n"},"event":"output","seq":7,"type":"event"}
[00:33:03.767] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.disable-aslr false\n"},"event":"output","seq":8,"type":"event"}
[00:33:03.767] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.detach-on-error false\n"},"event":"output","seq":9,"type":"event"}
[00:33:03.767] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.auto-apply-fixits false\n"},"event":"output","seq":10,"type":"event"}
[00:33:03.767] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set plugin.process.gdb-remote.packet-timeout 60\n"},"event":"output","seq":11,"type":"event"}
[00:33:03.767] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set symbols.clang-modules-cache-path \"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/module-cache-lldb/lldb-api\"\n"},"event":"output","seq":12,"type":"event"}
[00:33:03.767] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set use-color false\n"},"event":"output","seq":13,"type":"event"}
[00:33:03.767] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set show-statusline false\n"},"event":"output","seq":14,"type":"event"}
[00:33:03.831] (stdio) <-- {"body":{"module":{"addressRange":"0x783761511000","id":"520E0587-8220-FB2F-C6D2-8FF46B63B3FD-5D48E763","name":"ld-linux-x86-64.so.2","path":"/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2","symbolStatus":"Symbols not found."},"reason":"new"},"event":"module","seq":15,"type":"event"}
[00:33:03.831] (stdio) <-- {"body":{"module":{"addressRange":"0x7ffe5e9b4000","id":"935E8301-3E94-6C72-593D-620D433BE6E8-4F9BB79F","name":"[vdso]","path":"[vdso]","symbolStatus":"Symbols not found."},"reason":"new"},"event":"module","seq":16,"type":"event"}
[00:33:03.831] (stdio) <-- {"body":{"module":{"addressRange":"0x58dba0da2000","debugInfoSize":"77.6KB","id":"822E5AF8","name":"a.out","path":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/tools/lldb-dap/stopped-events/TestDAP_stopped_events.test_multiple_breakpoints_same_location/a.out","symbolFilePath":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/tools/lldb-dap/stopped-events/TestDAP_stopped_events.test_multiple_breakpoints_same_location/a.out","symbolStatus":"Symbols loaded."},"reason":"new"},"event":"module","seq":17,"type":"event"}
[00:33:03.831] (stdio) <-- {"event":"initialized","seq":18,"type":"event"}
[00:33:03.832] (stdio) --> {"command":"setBreakpoints","type":"request","arguments":{"source":{"path":"main.cpp"},"sourceModified":false,"lines":[6],"breakpoints":[{"line":6}]},"seq":3}
[00:33:03.832] DAP.cpp:1007 (stdio) queued (command=setBreakpoints seq=3)
[00:33:03.835] (stdio) <-- {"body":{"breakpoints":[{"column":10,"id":1,"instructionReference":"0x58DBA0DA378A","line":7,"source":{"name":"main.cpp","path":"/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/tools/lldb-dap/stopped-events/main.cpp"},"verified":true}]},"command":"setBreakpoints","request_seq":3,"seq":19,"success":true,"type":"response"}
[00:33:03.835] (stdio) <-- {"body":{"breakpoint":{"column":10,"id":1,"instructionReference":"0x58DBA0DA378A","line":7,"verified":true},"reason":"changed"},"event":"breakpoint","seq":20,"type":"event"}
[00:33:03.846] (stdio) --> {"command":"setFunctionBreakpoints","type":"request","arguments":{"breakpoints":[{"name":"my_add"}]},"seq":4}
[00:33:03.846] DAP.cpp:1007 (stdio) queued (command=setFunctionBreakpoints seq=4)
[00:33:03.846] (stdio) <-- {"body":{"breakpoints":[{"column":10,"id":2,"instructionReference":"0x58DBA0DA378A","line":7,"source":{"name":"main.cpp","path":"/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/tools/lldb-dap/stopped-events/main.cpp"},"verified":true}]},"command":"setFunctionBreakpoints","request_seq":4,"seq":21,"success":true,"type":"response"}
[00:33:03.846] (stdio) <-- {"body":{"breakpoint":{"column":10,"id":2,"instructionReference":"0x58DBA0DA378A","line":7,"verified":true},"reason":"changed"},"event":"breakpoint","seq":22,"type":"event"}
[00:33:03.847] (stdio) --> {"command":"configurationDone","type":"request","arguments":{},"seq":5}
[00:33:03.847] DAP.cpp:1007 (stdio) queued (command=configurationDone seq=5)
[00:33:03.847] (stdio) <-- {"body":{"capabilities":{"supportsModuleSymbolsRequest":true,"supportsRestartRequest":true,"supportsStepInTargetsRequest":true}},"event":"capabilities","seq":23,"type":"event"}
[00:33:03.847] (stdio) <-- {"body":{"category":"console","output":"Executable binary set to '/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/tools/lldb-dap/stopped-events/TestDAP_stopped_events.test_multiple_breakpoints_same_location/a.out' (x86_64-unknown-linux-gnu).\r\n"},"event":"output","seq":24,"type":"event"}
[00:33:03.847] (stdio) <-- {"body":{"category":"console","output":"Attached to process 1570438.\r\n"},"event":"output","seq":25,"type":"event"}
[00:33:03.848] (stdio) <-- {"body":{"isLocalProcess":true,"name":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/tools/lldb-dap/stopped-events/TestDAP_stopped_events.test_multiple_breakpoints_same_location/a.out","pointerSize":64,"startMethod":"launch","systemProcessId":1570438},"event":"process","seq":26,"type":"event"}
[00:33:03.848] (stdio) <-- {"command":"configurationDone","request_seq":5,"seq":27,"success":true,"type":"response"}
[00:33:03.848] (stdio) --> {"command":"threads","type":"request","arguments":{},"seq":6}
[00:33:03.848] (stdio) <-- {"command":"launch","request_seq":2,"seq":28,"success":true,"type":"response"}
[00:33:03.848] DAP.cpp:1007 (stdio) queued (command=threads seq=6)
[00:33:03.848] (stdio) <-- {"body":{"threads":[{"id":1570438,"name":"a.out"}]},"command":"threads","request_seq":6,"seq":29,"success":true,"type":"response"}
[00:33:03.888] (stdio) <-- {"body":{"module":{"addressRange":"0x7837613f8000","id":"66DBFBCB","name":"libc++.so.1","path":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/x86_64-unknown-linux-gnu/libc++.so.1","symbolFilePath":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/x86_64-unknown-linux-gnu/libc++.so.1","symbolStatus":"Symbols loaded."},"reason":"new"},"event":"module","seq":30,"type":"event"}
[00:33:03.888] (stdio) <-- {"body":{"module":{"addressRange":"0x78376139f000","id":"A843FD4B","name":"libunwind.so.1","path":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/x86_64-unknown-linux-gnu/libunwind.so.1","symbolFilePath":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/x86_64-unknown-linux-gnu/libunwind.so.1","symbolStatus":"Symbols loaded."},"reason":"new"},"event":"module","seq":31,"type":"event"}
[00:33:03.888] (stdio) <-- {"body":{"module":{"addressRange":"0x7837612b3000","id":"F834D730-8D26-6021-8ED4-F7486A58E28C-8464FE4B","name":"libm.so.6","path":"/lib/x86_64-linux-gnu/libm.so.6","symbolStatus":"Symbols not found."},"reason":"new"},"event":"module","seq":32,"type":"event"}
[00:33:03.888] (stdio) <-- {"body":{"module":{"addressRange":"0x7837613af000","id":"93954344","name":"libc++abi.so.1","path":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/x86_64-unknown-linux-gnu/libc++abi.so.1","symbolFilePath":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/x86_64-unknown-linux-gnu/libc++abi.so.1","symbolStatus":"Symbols loaded."},"reason":"new"},"event":"module","seq":33,"type":"event"}
[00:33:03.888] (stdio) <-- {"body":{"module":{"addressRange":"0x783761285000","id":"30724452-88DD-2ABA-348B-F583C65F7050-9AAB8141","name":"libgcc_s.so.1","path":"/lib/x86_64-linux-gnu/libgcc_s.so.1","symbolStatus":"Symbols not found."},"reason":"new"},"event":"module","seq":34,"type":"event"}
[00:33:03.888] (stdio) <-- {"body":{"module":{"addressRange":"0x783761066000","id":"D2D793C5-CDFA-B4C2-E083-F41AAF689B69-4B62EACD","name":"libatomic.so.1","path":"/lib/x86_64-linux-gnu/libatomic.so.1","symbolStatus":"Symbols not found."},"reason":"new"},"event":"module","seq":35,"type":"event"}
[00:33:03.888] (stdio) <-- {"body":{"module":{"addressRange":"0x783761071000","id":"274EEC48-8D23-0825-A136-FA9C4D85370F-ED7A0A5E","name":"libc.so.6","path":"/lib/x86_64-linux-gnu/libc.so.6","symbolStatus":"Symbols not found."},"reason":"new"},"event":"module","seq":36,"type":"event"}
[00:33:03.900] (stdio) <-- {"body":{"allThreadsStopped":true,"description":"breakpoint 1.1 2.1","hitBreakpointIds":[1,2],"reason":"breakpoint","text":"breakpoint 1.1 2.1","threadId":1570577},"event":"stopped","seq":37,"type":"event"}
[00:33:04.161] (stdio) --> {"command":"disconnect","type":"request","arguments":{"terminateDebuggee":true},"seq":7}
[00:33:04.161] DAP.cpp:1007 (stdio) queued (command=disconnect seq=7)
[00:33:04.162] (stdio) <-- {"body":{"category":"console","output":"Process 1570438 exited with status = 9 (0x00000009) killed\n"},"event":"output","seq":38,"type":"event"}
[00:33:04.165] (stdio) <-- {"body":{"$__lldb_statistics":{"commands":"{\"settings clear\":1}","memory":"{\"strings\":{\"bytesTotal\":1064960,\"bytesUnused\":404067,\"bytesUsed\":660893}}","plugins":"{\"abi\":[{\"enabled\":true,\"name\":\"SysV-arm64\"},{\"enabled\":true,\"name\":\"ABIMacOSX_arm64\"},{\"enabled\":true,\"name\":\"SysV-arm\"},{\"enabled\":true,\"name\":\"macosx-arm\"},{\"enabled\":true,\"name\":\"sysv-hexagon\"},{\"enabled\":true,\"name\":\"sysv-loongarch\"},{\"enabled\":true,\"name\":\"sysv-mips\"},{\"enabled\":true,\"name\":\"sysv-mips64\"},{\"enabled\":true,\"name\":\"sysv-msp430\"},{\"enabled\":true,\"name\":\"sysv-ppc\"},{\"enabled\":true,\"name\":\"sysv-ppc64\"},{\"enabled\":true,\"name\":\"sysv-riscv\"},{\"enabled\":true,\"name\":\"sysv-s390x\"},{\"enabled\":true,\"name\":\"abi.macosx-i386\"},{\"enabled\":true,\"name\":\"sysv-i386\"},{\"enabled\":true,\"name\":\"sysv-x86_64\"},{\"enabled\":true,\"name\":\"windows-x86_64\"}],\"architecture\":[{\"enabled\":true,\"name\":\"arm\"},{\"enabled\":true,\"name\":\"mips\"},{\"enabled\":true,\"name\":\"ppc64\"},{\"enabled\":true,\"name\":\"aarch64\"}],\"disassembler\":[{\"enabled\":true,\"name\":\"llvm-mc\"}],\"dynamic-loader\":[{\"enabled\":true,\"name\":\"darwin-kernel\"},{\"enabled\":true,\"name\":\"freebsd-kernel\"},{\"enabled\":true,\"name\":\"macosx-dyld\"},{\"enabled\":true,\"name\":\"macos-dyld\"},{\"enabled\":true,\"name\":\"posix-dyld\"},{\"enabled\":true,\"name\":\"static\"},{\"enabled\":true,\"name\":\"hexagon-dyld\"},{\"enabled\":true,\"name\":\"windows-dyld\"},{\"enabled\":true,\"name\":\"wasm-dyld\"}],\"emulate-instruction\":[{\"enabled\":true,\"name\":\"arm\"},{\"enabled\":true,\"name\":\"arm64\"},{\"enabled\":true,\"name\":\"LoongArch\"},{\"enabled\":true,\"name\":\"mips32\"},{\"enabled\":true,\"name\":\"mips64\"},{\"enabled\":true,\"name\":\"ppc64\"},{\"enabled\":true,\"name\":\"riscv\"}],\"instrumentation-runtime\":[{\"enabled\":true,\"name\":\"AddressSanitizer\"},{\"enabled\":true,\"name\":\"Libsanitizers-ASan\"},{\"enabled\":true,\"name\":\"BoundsSafety\"},{\"enabled\":true,\"name\":\"MainThreadChecker\"},{\"enabled\":true,\"name\":\"ThreadSanitizer\"},{\"enabled\":true,\"name\":\"UndefinedBehaviorSanitizer\"}],\"jit-loader\":[{\"enabled\":true,\"name\":\"gdb\"}],\"language\":[{\"enabled\":true,\"name\":\"cplusplus\"},{\"enabled\":true,\"name\":\"objc\"},{\"enabled\":true,\"name\":\"objcplusplus\"}],\"language-runtime\":[{\"enabled\":true,\"name\":\"itanium\"},{\"enabled\":true,\"name\":\"apple-objc-v2\"},{\"enabled\":true,\"name\":\"apple-objc-v1\"},{\"enabled\":true,\"name\":\"gnustep-objc-libobjc2\"}],\"memory-history\":[{\"enabled\":true,\"name\":\"asan\"}],\"object-container\":[{\"enabled\":true,\"name\":\"bsd-archive\"},{\"enabled\":true,\"name\":\"big-archive\"},{\"enabled\":true,\"name\":\"mach-o\"},{\"enabled\":true,\"name\":\"mach-o-fileset\"}],\"object-file\":[{\"enabled\":true,\"name\":\"breakpad\"},{\"enabled\":true,\"name\":\"COFF\"},{\"enabled\":true,\"name\":\"elf\"},{\"enabled\":true,\"name\":\"JSON\"},{\"enabled\":true,\"name\":\"mach-o\"},{\"enabled\":true,\"name\":\"minidump\"},{\"enabled\":true,\"name\":\"pdb\"},{\"enabled\":true,\"name\":\"pe-coff\"},{\"enabled\":true,\"name\":\"xcoff\"},{\"enabled\":true,\"name\":\"wasm\"}],\"operating-system\":[{\"enabled\":true,\"name\":\"python\"}],\"platform\":[{\"enabled\":true,\"name\":\"remote-AIX\"},{\"enabled\":true,\"name\":\"remote-linux\"},{\"enabled\":true,\"name\":\"remote-android\"},{\"enabled\":true,\"name\":\"remote-freebsd\"},{\"enabled\":true,\"name\":\"remote-gdb-server\"},{\"enabled\":true,\"name\":\"darwin\"},{\"enabled\":true,\"name\":\"remote-ios\"},{\"enabled\":true,\"name\":\"remote-macosx\"},{\"enabled\":true,\"name\":\"host\"},{\"enabled\":true,\"name\":\"remote-netbsd\"},{\"enabled\":true,\"name\":\"remote-openbsd\"},{\"enabled\":true,\"name\":\"qemu-user\"},{\"enabled\":true,\"name\":\"wasm\"},{\"enabled\":true,\"name\":\"remote-windows\"}],\"process\":[{\"enabled\":true,\"name\":\"ScriptedProcess\"},{\"enabled\":true,\"name\":\"elf-core\"},{\"enabled\":true,\"name\":\"mach-o-core\"},{\"enabled\":true,\"name\":\"minidump\"},{\"enabled\":true,\"name\":\"wasm\"},{\"enabled\":true,\"name\":\"gdb-remote\"}],\"register-type-builder\":[{\"enabled\":true,\"name\":\"register-types-clang\"}],\"repl\":[{\"enabled\":true,\"name\":\"ClangREPL\"}],\"script-interpreter\":[{\"enabled\":true,\"name\":\"script-none\"},{\"enabled\":true,\"name\":\"script-python\"}],\"scripted-interface\":[{\"enabled\":true,\"name\":\"OperatingSystemPythonInterface\"},{\"enabled\":true,\"name\":\"ScriptedPlatformPythonInterface\"},{\"enabled\":true,\"name\":\"ScriptedProcessPythonInterface\"},{\"enabled\":true,\"name\":\"ScriptedStopHookPythonInterface\"},{\"enabled\":true,\"name\":\"ScriptedBreakpointPythonInterface\"},{\"enabled\":true,\"name\":\"ScriptedThreadPlanPythonInterface\"},{\"enabled\":true,\"name\":\"ScriptedFrameProviderPythonInterface\"}],\"structured-data\":[{\"enabled\":true,\"name\":\"darwin-log\"}],\"symbol-file\":[{\"enabled\":true,\"name\":\"breakpad\"},{\"enabled\":true,\"name\":\"CTF\"},{\"enabled\":true,\"name\":\"dwarf\"},{\"enabled\":true,\"name\":\"dwarf-debugmap\"},{\"enabled\":true,\"name\":\"JSON\"},{\"enabled\":true,\"name\":\"native-pdb\"},{\"enabled\":true,\"name\":\"pdb\"},{\"enabled\":true,\"name\":\"symtab\"}],\"symbol-locator\":[{\"enabled\":true,\"name\":\"debuginfod\"},{\"enabled\":true,\"name\":\"Default\"}],\"symbol-vendor\":[{\"enabled\":true,\"name\":\"ELF\"},{\"enabled\":true,\"name\":\"PE-COFF\"},{\"enabled\":true,\"name\":\"WASM\"}],\"system-runtime\":[{\"enabled\":true,\"name\":\"systemruntime-macosx\"}],\"trace-exporter\":[{\"enabled\":true,\"name\":\"ctf\"}],\"type-system\":[{\"enabled\":true,\"name\":\"clang\"}],\"unwind-assembly\":[{\"enabled\":true,\"name\":\"inst-emulation\"},{\"enabled\":true,\"name\":\"x86\"}]}","targets":"[{\"breakpoints\":[{\"details\":{\"Breakpoint\":{\"BKPTOptions\":{\"AutoContinue\":false,\"ConditionText\":\"\",\"EnabledState\":true,\"IgnoreCount\":0,\"OneShotState\":false},\"BKPTResolver\":{\"Options\":{\"Column\":0,\"Exact\":false,\"FileName\":\"/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/tools/lldb-dap/stopped-events/main.cpp\",\"Inlines\":true,\"LineNumber\":6,\"Offset\":0,\"SkipPrologue\":true},\"Type\":\"FileAndLine\"},\"Hardware\":false,\"Names\":[\"dap\"],\"SearchFilter\":{\"Options\":{},\"Type\":\"Unconstrained\"}}},\"hitCount\":1,\"id\":1,\"internal\":false,\"numLocations\":1,\"numResolvedLocations\":1,\"resolveTime\":0.0015319999999999999},{\"details\":{\"Breakpoint\":{\"BKPTOptions\":{\"AutoContinue\":false,\"ConditionText\":\"\",\"EnabledState\":true,\"IgnoreCount\":0,\"OneShotState\":false},\"BKPTResolver\":{\"Options\":{\"NameMask\":[24,32,4],\"Offset\":0,\"SkipPrologue\":true,\"SymbolNames\":[\"my_add\",\"my_add\",\"my_add\"]},\"Type\":\"SymbolName\"},\"Hardware\":false,\"Names\":[\"dap\"],\"SearchFilter\":{\"Options\":{},\"Type\":\"Unconstrained\"}}},\"hitCount\":1,\"id\":2,\"internal\":false,\"numLocations\":1,\"numResolvedLocations\":1,\"resolveTime\":0.000112},{\"details\":{\"Breakpoint\":{\"BKPTOptions\":{\"AutoContinue\":false,\"ConditionText\":\"\",\"EnabledState\":true,\"IgnoreCount\":0,\"OneShotState\":false},\"BKPTResolver\":{\"Options\":{\"Language\":\"c\",\"NameMask\":[4,4,4,4,4,4],\"Offset\":0,\"SkipPrologue\":false,\"SymbolNames\":[\"_dl_debug_state\",\"rtld_db_dlactivity\",\"__dl_rtld_db_dlactivity\",\"r_debug_state\",\"_r_debug_state\",\"_rtld_debug_state\"]},\"Type\":\"SymbolName\"},\"Hardware\":false,\"SearchFilter\":{\"Options\":{\"ModuleList\":[\"/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2\"]},\"Type\":\"Modules\"}}},\"hitCount\":2,\"id\":-1,\"internal\":true,\"kindDescription\":\"shared-library-event\",\"numLocations\":1,\"numResolvedLocations\":1,\"resolveTime\":0.000115}],\"dyldPluginName\":\"posix-dyld\",\"expressionEvaluation\":{\"failures\":0,\"successes\":0},\"firstStopTime\":0.027693254,\"frameVariable\":{\"failures\":0,\"successes\":0},\"launchOrAttachTime\":0.022211320999999999,\"moduleIdentifiers\":[299073888,299563008,298104176,139521744178608,139523086355392,139523824597472,139521811287424,139521140198512,139522012613568,139521207307376],\"signals\":[{\"SIGSTOP\":1}],\"sourceMapDeduceCount\":0,\"sourceRealpathAttemptCount\":0,\"sourceRealpathCompatibleCount\":0,\"stopCount\":7,\"summaryProviderStatistics\":[],\"targetCreateTime\":0.032634000000000003,\"totalBreakpointResolveTime\":0.0017589999999999999,\"totalSharedLibraryEventHitCount\":2}]","totalDebugInfoByteSize":79456,"totalDebugInfoEnabled":1,"totalDebugInfoIndexLoadedFromCache":0,"totalDebugInfoIndexSavedToCache":0,"totalDebugInfoIndexTime":0.026939000000000001,"totalDebugInfoParseTime":0.00069099999999999999,"totalDwoErrorCount":0,"totalDwoFileCount":0,"totalLoadedDwoFileCount":0,"totalModuleCount":10,"totalModuleCountHasDebugInfo":1,"totalModuleCountWithIncompleteTypes":0,"totalModuleCountWithVariableErrors":0,"totalSymbolLocatorTime":"{\"Default\":0.004163,\"debuginfod\":0}","totalSymbolTableIndexTime":0.010371999999999999,"totalSymbolTableParseTime":0.049902000000000002,"totalSymbolTableStripped":0,"totalSymbolTableSymbolCount":12698,"totalSymbolTablesLoaded":10,"totalSymbolTablesLoadedFromCache":0,"totalSymbolTablesSavedToCache":0}},"event":"terminated","seq":39,"type":"event"}
[00:33:04.166] (stdio) <-- {"command":"disconnect","request_seq":7,"seq":40,"success":true,"type":"response"}
[00:33:04.166] (stdio) <-- {"body":{"exitCode":9},"event":"exited","seq":41,"type":"event"}

========= END =========
========= DEBUG ADAPTER PROTOCOL LOGS =========
[00:33:05.452] (stdio) --> {"command":"initialize","type":"request","arguments":{"adapterID":"lldb-native","clientID":"vscode","columnsStartAt1":true,"linesStartAt1":true,"locale":"en-us","pathFormat":"path","supportsRunInTerminalRequest":true,"supportsVariablePaging":true,"supportsVariableType":true,"supportsStartDebuggingRequest":true,"supportsProgressReporting":true,"supportsInvalidatedEvent":true,"supportsMemoryEvent":true,"$__lldb_sourceInitFile":false},"seq":1}
[00:33:05.452] DAP.cpp:1007 (stdio) queued (command=initialize seq=1)
[00:33:05.452] (stdio) <-- {"body":{"$__lldb_version":"lldb version 23.0.0git (https://github.com/llvm/llvm-project revision a4cd011dbd11b2b55275f8bed10878de6b1feed2)\n  clang revision a4cd011dbd11b2b55275f8bed10878de6b1feed2\n  llvm revision a4cd011dbd11b2b55275f8bed10878de6b1feed2","completionTriggerCharacters":["."," ","\t"],"exceptionBreakpointFilters":[{"description":"C++ Catch","filter":"cpp_catch","label":"C++ Catch","supportsCondition":true},{"description":"C++ Throw","filter":"cpp_throw","label":"C++ Throw","supportsCondition":true},{"description":"Objective-C Catch","filter":"objc_catch","label":"Objective-C Catch","supportsCondition":true},{"description":"Objective-C Throw","filter":"objc_throw","label":"Objective-C Throw","supportsCondition":true}],"supportTerminateDebuggee":true,"supportsBreakpointLocationsRequest":true,"supportsCancelRequest":true,"supportsClipboardContext":true,"supportsCompletionsRequest":true,"supportsConditionalBreakpoints":true,"supportsConfigurationDoneRequest":true,"supportsDataBreakpointBytes":true,"supportsDataBreakpoints":true,"supportsDelayedStackTraceLoading":true,"supportsDisassembleRequest":true,"supportsEvaluateForHovers":true,"supportsExceptionFilterOptions":true,"supportsExceptionInfoRequest":true,"supportsFunctionBreakpoints":true,"supportsHitConditionalBreakpoints":true,"supportsInstructionBreakpoints":true,"supportsLogPoints":true,"supportsModuleSymbolsRequest":true,"supportsModulesRequest":true,"supportsReadMemoryRequest":true,"supportsSetVariable":true,"supportsSteppingGranularity":true,"supportsValueFormattingOptions":true,"supportsWriteMemoryRequest":true},"command":"initialize","request_seq":1,"seq":1,"success":true,"type":"response"}
[00:33:05.453] (stdio) --> {"seq":2,"command":"launch","type":"request","arguments":{"program":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/tools/lldb-dap/stopped-events/TestDAP_stopped_events.test_multiple_threads_sample_breakpoint/a.out","initCommands":["settings clear --all","settings set symbols.enable-external-lookup false","settings set target.inherit-tcc true","settings set target.disable-aslr false","settings set target.detach-on-error false","settings set target.auto-apply-fixits false","settings set plugin.process.gdb-remote.packet-timeout 60","settings set symbols.clang-modules-cache-path \"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/module-cache-lldb/lldb-api\"","settings set use-color false","settings set show-statusline false"],"disableASLR":false,"enableAutoVariableSummaries":false,"enableSyntheticChildDebugging":false,"displayExtendedBacktrace":false}}
[00:33:05.453] DAP.cpp:1007 (stdio) queued (command=launch seq=2)
[00:33:05.455] (stdio) <-- {"body":{"category":"console","output":"To get started with the debug console try \"<variable>\", \"<lldb-cmd>\" or \"help [<lldb-cmd>]\"\r\n"},"event":"output","seq":2,"type":"event"}
[00:33:05.455] (stdio) <-- {"body":{"category":"console","output":"For more information visit https://lldb.llvm.org/use/lldbdap.html#debug-console.\r\n"},"event":"output","seq":3,"type":"event"}
[00:33:05.455] (stdio) <-- {"body":{"category":"console","output":"Running initCommands:\n"},"event":"output","seq":4,"type":"event"}
[00:33:05.455] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings clear --all\n"},"event":"output","seq":5,"type":"event"}
[00:33:05.455] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set symbols.enable-external-lookup false\n"},"event":"output","seq":6,"type":"event"}
[00:33:05.455] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.inherit-tcc true\n"},"event":"output","seq":7,"type":"event"}
[00:33:05.455] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.disable-aslr false\n"},"event":"output","seq":8,"type":"event"}
[00:33:05.455] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.detach-on-error false\n"},"event":"output","seq":9,"type":"event"}
[00:33:05.455] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set target.auto-apply-fixits false\n"},"event":"output","seq":10,"type":"event"}
[00:33:05.455] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set plugin.process.gdb-remote.packet-timeout 60\n"},"event":"output","seq":11,"type":"event"}
[00:33:05.455] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set symbols.clang-modules-cache-path \"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/module-cache-lldb/lldb-api\"\n"},"event":"output","seq":12,"type":"event"}
[00:33:05.455] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set use-color false\n"},"event":"output","seq":13,"type":"event"}
[00:33:05.455] (stdio) <-- {"body":{"category":"console","output":"(lldb) settings set show-statusline false\n"},"event":"output","seq":14,"type":"event"}
[00:33:05.480] (stdio) <-- {"event":"initialized","seq":15,"type":"event"}
[00:33:05.480] (stdio) <-- {"body":{"module":{"addressRange":"0x784cabf97000","id":"520E0587-8220-FB2F-C6D2-8FF46B63B3FD-5D48E763","name":"ld-linux-x86-64.so.2","path":"/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2","symbolStatus":"Symbols not found."},"reason":"new"},"event":"module","seq":16,"type":"event"}
[00:33:05.480] (stdio) --> {"command":"setBreakpoints","type":"request","arguments":{"source":{"path":"main.cpp"},"sourceModified":false,"lines":[6],"breakpoints":[{"line":6}]},"seq":3}
[00:33:05.480] DAP.cpp:1007 (stdio) queued (command=setBreakpoints seq=3)
[00:33:05.480] (stdio) <-- {"body":{"module":{"addressRange":"0x7ffe7814e000","id":"935E8301-3E94-6C72-593D-620D433BE6E8-4F9BB79F","name":"[vdso]","path":"[vdso]","symbolStatus":"Symbols not found."},"reason":"new"},"event":"module","seq":17,"type":"event"}
[00:33:05.480] (stdio) <-- {"body":{"module":{"addressRange":"0x5bffb6d04000","debugInfoSize":"77.6KB","id":"98A3F70C","name":"a.out","path":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/tools/lldb-dap/stopped-events/TestDAP_stopped_events.test_multiple_threads_sample_breakpoint/a.out","symbolFilePath":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/tools/lldb-dap/stopped-events/TestDAP_stopped_events.test_multiple_threads_sample_breakpoint/a.out","symbolStatus":"Symbols loaded."},"reason":"new"},"event":"module","seq":18,"type":"event"}
[00:33:05.483] (stdio) <-- {"body":{"breakpoints":[{"column":10,"id":1,"instructionReference":"0x5BFFB6D0578A","line":7,"source":{"name":"main.cpp","path":"/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/tools/lldb-dap/stopped-events/main.cpp"},"verified":true}]},"command":"setBreakpoints","request_seq":3,"seq":19,"success":true,"type":"response"}
[00:33:05.483] (stdio) <-- {"body":{"breakpoint":{"column":10,"id":1,"instructionReference":"0x5BFFB6D0578A","line":7,"verified":true},"reason":"changed"},"event":"breakpoint","seq":20,"type":"event"}
[00:33:05.483] (stdio) --> {"command":"configurationDone","type":"request","arguments":{},"seq":4}
[00:33:05.483] DAP.cpp:1007 (stdio) queued (command=configurationDone seq=4)
[00:33:05.483] (stdio) <-- {"body":{"capabilities":{"supportsModuleSymbolsRequest":true,"supportsRestartRequest":true,"supportsStepInTargetsRequest":true}},"event":"capabilities","seq":21,"type":"event"}
[00:33:05.483] (stdio) <-- {"body":{"category":"console","output":"Executable binary set to '/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/tools/lldb-dap/stopped-events/TestDAP_stopped_events.test_multiple_threads_sample_breakpoint/a.out' (x86_64-unknown-linux-gnu).\r\n"},"event":"output","seq":22,"type":"event"}
[00:33:05.484] (stdio) <-- {"body":{"category":"console","output":"Attached to process 1572291.\r\n"},"event":"output","seq":23,"type":"event"}
[00:33:05.484] (stdio) <-- {"body":{"isLocalProcess":true,"name":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lldb-test-build.noindex/tools/lldb-dap/stopped-events/TestDAP_stopped_events.test_multiple_threads_sample_breakpoint/a.out","pointerSize":64,"startMethod":"launch","systemProcessId":1572291},"event":"process","seq":24,"type":"event"}
[00:33:05.484] (stdio) <-- {"command":"configurationDone","request_seq":4,"seq":25,"success":true,"type":"response"}
[00:33:05.484] (stdio) <-- {"command":"launch","request_seq":2,"seq":26,"success":true,"type":"response"}
[00:33:05.484] (stdio) --> {"command":"threads","type":"request","arguments":{},"seq":5}
[00:33:05.484] DAP.cpp:1007 (stdio) queued (command=threads seq=5)
[00:33:05.484] (stdio) <-- {"body":{"threads":[{"id":1572291,"name":"a.out"}]},"command":"threads","request_seq":5,"seq":27,"success":true,"type":"response"}
[00:33:05.503] (stdio) <-- {"body":{"module":{"addressRange":"0x784cabe7e000","id":"66DBFBCB","name":"libc++.so.1","path":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/x86_64-unknown-linux-gnu/libc++.so.1","symbolFilePath":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/x86_64-unknown-linux-gnu/libc++.so.1","symbolStatus":"Symbols loaded."},"reason":"new"},"event":"module","seq":28,"type":"event"}
[00:33:05.503] (stdio) <-- {"body":{"module":{"addressRange":"0x784cabe35000","id":"93954344","name":"libc++abi.so.1","path":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/x86_64-unknown-linux-gnu/libc++abi.so.1","symbolFilePath":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/x86_64-unknown-linux-gnu/libc++abi.so.1","symbolStatus":"Symbols loaded."},"reason":"new"},"event":"module","seq":29,"type":"event"}
[00:33:05.503] (stdio) <-- {"body":{"module":{"addressRange":"0x784cabe25000","id":"A843FD4B","name":"libunwind.so.1","path":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/x86_64-unknown-linux-gnu/libunwind.so.1","symbolFilePath":"/home/gha/actions-runner/_work/llvm-project/llvm-project/build/lib/x86_64-unknown-linux-gnu/libunwind.so.1","symbolStatus":"Symbols loaded."},"reason":"new"},"event":"module","seq":30,"type":"event"}
[00:33:05.503] (stdio) <-- {"body":{"module":{"addressRange":"0x784cabd39000","id":"F834D730-8D26-6021-8ED4-F7486A58E28C-8464FE4B","name":"libm.so.6","path":"/lib/x86_64-linux-gnu/libm.so.6","symbolStatus":"Symbols not found."},"reason":"new"},"event":"module","seq":31,"type":"event"}
[00:33:05.503] (stdio) <-- {"body":{"module":{"addressRange":"0x784cabd0b000","id":"30724452-88DD-2ABA-348B-F583C65F7050-9AAB8141","name":"libgcc_s.so.1","path":"/lib/x86_64-linux-gnu/libgcc_s.so.1","symbolStatus":"Symbols not found."},"reason":"new"},"event":"module","seq":32,"type":"event"}
[00:33:05.503] (stdio) <-- {"body":{"module":{"addressRange":"0x784cabaec000","id":"D2D793C5-CDFA-B4C2-E083-F41AAF689B69-4B62EACD","name":"libatomic.so.1","path":"/lib/x86_64-linux-gnu/libatomic.so.1","symbolStatus":"Symbols not found."},"reason":"new"},"event":"module","seq":33,"type":"event"}
[00:33:05.503] (stdio) <-- {"body":{"module":{"addressRange":"0x784cabaf7000","id":"274EEC48-8D23-0825-A136-FA9C4D85370F-ED7A0A5E","name":"libc.so.6","path":"/lib/x86_64-linux-gnu/libc.so.6","symbolStatus":"Symbols not found."},"reason":"new"},"event":"module","seq":34,"type":"event"}
[00:33:05.506] (stdio) <-- {"body":{"allThreadsStopped":true,"description":"breakpoint 1.1","hitBreakpointIds":[1],"reason":"breakpoint","text":"breakpoint 1.1","threadId":1572372},"event":"stopped","seq":35,"type":"event"}
[00:33:05.506] (stdio) <-- {"body":{"description":"breakpoint 1.1","hitBreakpointIds":[1],"preserveFocusHint":true,"reason":"breakpoint","text":"breakpoint 1.1","threadId":1572376},"event":"stopped","seq":36,"type":"event"}
[00:33:05.757] (stdio) --> {"command":"threads","type":"request","arguments":{},"seq":6}
[00:33:05.757] DAP.cpp:1007 (stdio) queued (command=threads seq=6)
[00:33:05.757] (stdio) <-- {"body":{"threads":[{"id":1572291,"name":"a.out"},{"id":1572372,"name":"a.out"},{"id":1572376,"name":"a.out"}]},"command":"threads","request_seq":6,"seq":37,"success":true,"type":"response"}
[00:33:05.757] (stdio) --> {"command":"continue","type":"request","arguments":{"threadId":1572291},"seq":7}
[00:33:05.757] DAP.cpp:1007 (stdio) queued (command=continue seq=7)
[00:33:05.758] (stdio) <-- {"body":{"allThreadsContinued":true},"command":"continue","request_seq":7,"seq":38,"success":true,"type":"response"}
[00:33:05.758] (stdio) <-- {"body":{"allThreadsContinued":true,"threadId":1572372},"event":"continued","seq":39,"type":"event"}
[00:33:05.760] (stdio) <-- {"body":{"category":"console","output":"Process 1572291 exited with status = 0 (0x00000000) \n"},"event":"output","seq":40,"type":"event"}
[00:33:05.760] (stdio) <-- {"body":{"exitCode":0},"event":"exited","seq":41,"type":"event"}
[00:33:05.763] (stdio) <-- {"body":{"$__lldb_statistics":{"commands":"{\"settings clear\":1}","memory":"{\"strings\":{\"bytesTotal\":1064960,\"bytesUnused\":403831,\"bytesUsed\":661129}}","plugins":"{\"abi\":[{\"enabled\":true,\"name\":\"SysV-arm64\"},{\"enabled\":true,\"name\":\"ABIMacOSX_arm64\"},{\"enabled\":true,\"name\":\"SysV-arm\"},{\"enabled\":true,\"name\":\"macosx-arm\"},{\"enabled\":true,\"name\":\"sysv-hexagon\"},{\"enabled\":true,\"name\":\"sysv-loongarch\"},{\"enabled\":true,\"name\":\"sysv-mips\"},{\"enabled\":true,\"name\":\"sysv-mips64\"},{\"enabled\":true,\"name\":\"sysv-msp430\"},{\"enabled\":true,\"name\":\"sysv-ppc\"},{\"enabled\":true,\"name\":\"sysv-ppc64\"},{\"enabled\":true,\"name\":\"sysv-riscv\"},{\"enabled\":true,\"name\":\"sysv-s390x\"},{\"enabled\":true,\"name\":\"abi.macosx-i386\"},{\"enabled\":true,\"name\":\"sysv-i386\"},{\"enabled\":true,\"name\":\"sysv-x86_64\"},{\"enabled\":true,\"name\":\"windows-x86_64\"}],\"architecture\":[{\"enabled\":true,\"name\":\"arm\"},{\"enabled\":true,\"name\":\"mips\"},{\"enabled\":true,\"name\":\"ppc64\"},{\"enabled\":true,\"name\":\"aarch64\"}],\"disassembler\":[{\"enabled\":true,\"name\":\"llvm-mc\"}],\"dynamic-loader\":[{\"enabled\":true,\"name\":\"darwin-kernel\"},{\"enabled\":true,\"name\":\"freebsd-kernel\"},{\"enabled\":true,\"name\":\"macosx-dyld\"},{\"enabled\":true,\"name\":\"macos-dyld\"},{\"enabled\":true,\"name\":\"posix-dyld\"},{\"enabled\":true,\"name\":\"static\"},{\"enabled\":true,\"name\":\"hexagon-dyld\"},{\"enabled\":true,\"name\":\"windows-dyld\"},{\"enabled\":true,\"name\":\"wasm-dyld\"}],\"emulate-instruction\":[{\"enabled\":true,\"name\":\"arm\"},{\"enabled\":true,\"name\":\"arm64\"},{\"enabled\":true,\"name\":\"LoongArch\"},{\"enabled\":true,\"name\":\"mips32\"},{\"enabled\":true,\"name\":\"mips64\"},{\"enabled\":true,\"name\":\"ppc64\"},{\"enabled\":true,\"name\":\"riscv\"}],\"instrumentation-runtime\":[{\"enabled\":true,\"name\":\"AddressSanitizer\"},{\"enabled\":true,\"name\":\"Libsanitizers-ASan\"},{\"enabled\":true,\"name\":\"BoundsSafety\"},{\"enabled\":true,\"name\":\"MainThreadChecker\"},{\"enabled\":true,\"name\":\"ThreadSanitizer\"},{\"enabled\":true,\"name\":\"UndefinedBehaviorSanitizer\"}],\"jit-loader\":[{\"enabled\":true,\"name\":\"gdb\"}],\"language\":[{\"enabled\":true,\"name\":\"cplusplus\"},{\"enabled\":true,\"name\":\"objc\"},{\"enabled\":true,\"name\":\"objcplusplus\"}],\"language-runtime\":[{\"enabled\":true,\"name\":\"itanium\"},{\"enabled\":true,\"name\":\"apple-objc-v2\"},{\"enabled\":true,\"name\":\"apple-objc-v1\"},{\"enabled\":true,\"name\":\"gnustep-objc-libobjc2\"}],\"memory-history\":[{\"enabled\":true,\"name\":\"asan\"}],\"object-container\":[{\"enabled\":true,\"name\":\"bsd-archive\"},{\"enabled\":true,\"name\":\"big-archive\"},{\"enabled\":true,\"name\":\"mach-o\"},{\"enabled\":true,\"name\":\"mach-o-fileset\"}],\"object-file\":[{\"enabled\":true,\"name\":\"breakpad\"},{\"enabled\":true,\"name\":\"COFF\"},{\"enabled\":true,\"name\":\"elf\"},{\"enabled\":true,\"name\":\"JSON\"},{\"enabled\":true,\"name\":\"mach-o\"},{\"enabled\":true,\"name\":\"minidump\"},{\"enabled\":true,\"name\":\"pdb\"},{\"enabled\":true,\"name\":\"pe-coff\"},{\"enabled\":true,\"name\":\"xcoff\"},{\"enabled\":true,\"name\":\"wasm\"}],\"operating-system\":[{\"enabled\":true,\"name\":\"python\"}],\"platform\":[{\"enabled\":true,\"name\":\"remote-AIX\"},{\"enabled\":true,\"name\":\"remote-linux\"},{\"enabled\":true,\"name\":\"remote-android\"},{\"enabled\":true,\"name\":\"remote-freebsd\"},{\"enabled\":true,\"name\":\"remote-gdb-server\"},{\"enabled\":true,\"name\":\"darwin\"},{\"enabled\":true,\"name\":\"remote-ios\"},{\"enabled\":true,\"name\":\"remote-macosx\"},{\"enabled\":true,\"name\":\"host\"},{\"enabled\":true,\"name\":\"remote-netbsd\"},{\"enabled\":true,\"name\":\"remote-openbsd\"},{\"enabled\":true,\"name\":\"qemu-user\"},{\"enabled\":true,\"name\":\"wasm\"},{\"enabled\":true,\"name\":\"remote-windows\"}],\"process\":[{\"enabled\":true,\"name\":\"ScriptedProcess\"},{\"enabled\":true,\"name\":\"elf-core\"},{\"enabled\":true,\"name\":\"mach-o-core\"},{\"enabled\":true,\"name\":\"minidump\"},{\"enabled\":true,\"name\":\"wasm\"},{\"enabled\":true,\"name\":\"gdb-remote\"}],\"register-type-builder\":[{\"enabled\":true,\"name\":\"register-types-clang\"}],\"repl\":[{\"enabled\":true,\"name\":\"ClangREPL\"}],\"script-interpreter\":[{\"enabled\":true,\"name\":\"script-none\"},{\"enabled\":true,\"name\":\"script-python\"}],\"scripted-interface\":[{\"enabled\":true,\"name\":\"OperatingSystemPythonInterface\"},{\"enabled\":true,\"name\":\"ScriptedPlatformPythonInterface\"},{\"enabled\":true,\"name\":\"ScriptedProcessPythonInterface\"},{\"enabled\":true,\"name\":\"ScriptedStopHookPythonInterface\"},{\"enabled\":true,\"name\":\"ScriptedBreakpointPythonInterface\"},{\"enabled\":true,\"name\":\"ScriptedThreadPlanPythonInterface\"},{\"enabled\":true,\"name\":\"ScriptedFrameProviderPythonInterface\"}],\"structured-data\":[{\"enabled\":true,\"name\":\"darwin-log\"}],\"symbol-file\":[{\"enabled\":true,\"name\":\"breakpad\"},{\"enabled\":true,\"name\":\"CTF\"},{\"enabled\":true,\"name\":\"dwarf\"},{\"enabled\":true,\"name\":\"dwarf-debugmap\"},{\"enabled\":true,\"name\":\"JSON\"},{\"enabled\":true,\"name\":\"native-pdb\"},{\"enabled\":true,\"name\":\"pdb\"},{\"enabled\":true,\"name\":\"symtab\"}],\"symbol-locator\":[{\"enabled\":true,\"name\":\"debuginfod\"},{\"enabled\":true,\"name\":\"Default\"}],\"symbol-vendor\":[{\"enabled\":true,\"name\":\"ELF\"},{\"enabled\":true,\"name\":\"PE-COFF\"},{\"enabled\":true,\"name\":\"WASM\"}],\"system-runtime\":[{\"enabled\":true,\"name\":\"systemruntime-macosx\"}],\"trace-exporter\":[{\"enabled\":true,\"name\":\"ctf\"}],\"type-system\":[{\"enabled\":true,\"name\":\"clang\"}],\"unwind-assembly\":[{\"enabled\":true,\"name\":\"inst-emulation\"},{\"enabled\":true,\"name\":\"x86\"}]}","targets":"[{\"breakpoints\":[{\"details\":{\"Breakpoint\":{\"BKPTOptions\":{\"AutoContinue\":false,\"ConditionText\":\"\",\"EnabledState\":true,\"IgnoreCount\":0,\"OneShotState\":false},\"BKPTResolver\":{\"Options\":{\"Column\":0,\"Exact\":false,\"FileName\":\"/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/tools/lldb-dap/stopped-events/main.cpp\",\"Inlines\":true,\"LineNumber\":6,\"Offset\":0,\"SkipPrologue\":true},\"Type\":\"FileAndLine\"},\"Hardware\":false,\"Names\":[\"dap\"],\"SearchFilter\":{\"Options\":{},\"Type\":\"Unconstrained\"}}},\"hitCount\":2,\"id\":1,\"internal\":false,\"numLocations\":1,\"numResolvedLocations\":1,\"resolveTime\":0.001552},{\"details\":{\"Breakpoint\":{\"BKPTOptions\":{\"AutoContinue\":false,\"ConditionText\":\"\",\"EnabledState\":true,\"IgnoreCount\":0,\"OneShotState\":false},\"BKPTResolver\":{\"Options\":{\"Language\":\"c\",\"NameMask\":[4,4,4,4,4,4],\"Offset\":0,\"SkipPrologue\":false,\"SymbolNames\":[\"_dl_debug_state\",\"rtld_db_dlactivity\",\"__dl_rtld_db_dlactivity\",\"r_debug_state\",\"_r_debug_state\",\"_rtld_debug_state\"]},\"Type\":\"SymbolName\"},\"Hardware\":false,\"SearchFilter\":{\"Options\":{\"ModuleList\":[\"/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2\"]},\"Type\":\"Modules\"}}},\"hitCount\":2,\"id\":-1,\"internal\":true,\"kindDescription\":\"shared-library-event\",\"numLocations\":1,\"numResolvedLocations\":1,\"resolveTime\":0.000135}],\"dyldPluginName\":\"posix-dyld\",\"expressionEvaluation\":{\"failures\":0,\"successes\":0},\"firstStopTime\":0.018206491000000002,\"frameVariable\":{\"failures\":0,\"successes\":0},\"launchOrAttachTime\":0.012284954000000001,\"moduleIdentifiers\":[447459552,447948384,446494064,133787358858544,133787627293632,133787694403280,133787090422720,133787023313856,133787291771712,133787896414752],\"signals\":[{\"SIGSTOP\":1}],\"sourceMapDeduceCount\":0,\"sourceRealpathAttemptCount\":0,\"sourceRealpathCompatibleCount\":0,\"stopCount\":9,\"summaryProviderStatistics\":[],\"targetCreateTime\":0.0052259999999999997,\"totalBreakpointResolveTime\":0.0016869999999999999,\"totalSharedLibraryEventHitCount\":2}]","totalDebugInfoByteSize":79456,"totalDebugInfoEnabled":1,"totalDebugInfoIndexLoadedFromCache":0,"totalDebugInfoIndexSavedToCache":0,"totalDebugInfoIndexTime":0.0036389999999999999,"totalDebugInfoParseTime":0.00065799999999999995,"totalDwoErrorCount":0,"totalDwoFileCount":0,"totalLoadedDwoFileCount":0,"totalModuleCount":10,"totalModuleCountHasDebugInfo":1,"totalModuleCountWithIncompleteTypes":0,"totalModuleCountWithVariableErrors":0,"totalSymbolLocatorTime":"{\"Default\":0.0035580000000000004,\"debuginfod\":0}","totalSymbolTableIndexTime":0.0066289999999999995,"totalSymbolTableParseTime":0.034154999999999998,"totalSymbolTableStripped":0,"totalSymbolTableSymbolCount":12698,"totalSymbolTablesLoaded":10,"totalSymbolTablesLoadedFromCache":0,"totalSymbolTablesSavedToCache":0}},"event":"terminated","seq":42,"type":"event"}
[00:33:06.019] (stdio) --> {"command":"disconnect","type":"request","arguments":{"terminateDebuggee":true},"seq":8}
[00:33:06.019] DAP.cpp:1007 (stdio) queued (command=disconnect seq=8)
[00:33:06.019] (stdio) <-- {"command":"disconnect","request_seq":8,"seq":43,"success":true,"type":"response"}

========= END =========
PASS: LLDB (/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang-x86_64) :: test_multiple_threads_sample_breakpoint (TestDAP_stopped_events.TestDAP_stopped_events.test_multiple_threads_sample_breakpoint)
======================================================================
FAIL: test_multiple_breakpoints_same_location (TestDAP_stopped_events.TestDAP_stopped_events.test_multiple_breakpoints_same_location)
   Test stopping at a location that reports multiple overlapping breakpoints.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/test/API/tools/lldb-dap/stopped-events/TestDAP_stopped_events.py", line 105, in test_multiple_breakpoints_same_location
    self.assertEqual(len(events), 2, "Expected two stopped events")
AssertionError: 1 != 2 : Expected two stopped events
Config=x86_64-/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/clang
----------------------------------------------------------------------
Ran 2 tests in 3.929s

FAILED (failures=1)

--

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the infrastructure label.

@MrSidims MrSidims merged commit c487e24 into llvm:main Feb 4, 2026
13 of 15 checks passed
@llvm-ci
Copy link
Copy Markdown

llvm-ci commented Feb 4, 2026

LLVM Buildbot has detected a new failure on builder clangd-ubuntu-tsan running on clangd-ubuntu-clang while building llvm at step 5 "build-clangd-clangd-index-server-clangd-indexer".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/134/builds/34208

Here is the relevant piece of the build log for the reference
Step 5 (build-clangd-clangd-index-server-clangd-indexer) failure: build (failure)
0.010 [3433/18/1] Creating /vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/build/NATIVE...
0.013 [3432/18/2] Building CXX object lib/Demangle/CMakeFiles/LLVMDemangle.dir/MicrosoftDemangle.cpp.o
FAILED: lib/Demangle/CMakeFiles/LLVMDemangle.dir/MicrosoftDemangle.cpp.o 
ccache /usr/bin/clang++ -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/build/lib/Demangle -I/vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/llvm-project/llvm/lib/Demangle -I/vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/build/include -I/vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fno-omit-frame-pointer -gline-tables-only -fsanitize=thread -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -UNDEBUG -fno-exceptions -funwind-tables -fno-rtti -std=c++17 -MD -MT lib/Demangle/CMakeFiles/LLVMDemangle.dir/MicrosoftDemangle.cpp.o -MF lib/Demangle/CMakeFiles/LLVMDemangle.dir/MicrosoftDemangle.cpp.o.d -o lib/Demangle/CMakeFiles/LLVMDemangle.dir/MicrosoftDemangle.cpp.o -c /vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/llvm-project/llvm/lib/Demangle/MicrosoftDemangle.cpp
ccache: error: /vol/ccache/ccache.conf: No such file or directory
0.693 [3432/17/3] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTF.cpp.o
0.701 [3432/16/4] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BuryPointer.cpp.o
1.209 [3432/15/5] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertEBCDIC.cpp.o
1.253 [3432/14/6] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CRC.cpp.o
1.421 [3432/13/7] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BlockFrequency.cpp.o
1.453 [3432/12/8] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamError.cpp.o
1.474 [3432/11/9] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/circular_raw_ostream.cpp.o
1.565 [3432/10/10] Building CXX object lib/Demangle/CMakeFiles/LLVMDemangle.dir/RustDemangle.cpp.o
1.572 [3432/9/11] Building CXX object lib/Demangle/CMakeFiles/LLVMDemangle.dir/MicrosoftDemangleNodes.cpp.o
1.652 [3432/8/12] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BranchProbability.cpp.o
1.655 [3432/7/13] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTFWrapper.cpp.o
1.714 [3432/6/14] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamRef.cpp.o
1.840 [3432/5/15] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamWriter.cpp.o
1.991 [3432/4/16] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BinaryStreamReader.cpp.o
2.487 [3432/3/17] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CachePruning.cpp.o
2.550 [3432/2/18] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Caching.cpp.o
16.703 [3432/1/19] Configuring NATIVE LLVM...
-- The C compiler identification is Clang 18.1.0
-- The CXX compiler identification is Clang 18.1.0
-- The ASM compiler identification is Clang with GNU-like command-line
-- Found assembler: /usr/bin/clang
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- bolt project is disabled
-- clang project is enabled
-- clang-tools-extra project is enabled
-- cross-project-tests project is disabled
-- lld project is disabled
-- lldb project is disabled
-- mlir project is disabled
-- polly project is disabled
-- flang project is disabled
-- libc project is disabled
-- compiler-rt project is disabled
-- Doxygen disabled.
-- Found Python3: /usr/bin/python3.8 (found suitable version "3.8.0", minimum required is "3.0") found components: Interpreter 
-- Performing Test LLVM_LIBSTDCXX_MIN

rishabhmadan19 pushed a commit to rishabhmadan19/llvm-project that referenced this pull request Feb 9, 2026
…179052)

When the triple is spirv-unknown-unknown, SPIRVSubtarget::Env starts as
Unknown and was set via const_cast in SPIRVCallLowering when the first
entry point was lowered. This is too late: SPIRVLegalizerInfo has
already been constructed with, for example, the wrong vector size
limits, causing a crash (at best) or invalid SPIR-V generation.

Resolve the environment early in SPIRVPrepareFunctions::runOnModule() by
scanning the module for "hlsl.shader" attributes. Reinitialize the
legalizer and extended instruction sets after resolution. Remove the
const_cast lazy setting from SPIRVCallLowering.

Fixes: llvm#171898
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[SPIRV] The result of isShader changes in the middle of compilation

7 participants