Skip to content

Add LLDB providers for BTreeMap and BTreeSet #140130

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

ede1998
Copy link

@ede1998 ede1998 commented Apr 21, 2025

Fixes #111868.

I'm unsure what the supported LLDB versions for rust-lldb are. I tested with LLDB 18 and 19 and it works with those but I know that it does not work with LLDB 14 which was picked by my codelldb extension for some reason (even though it packages LLDB 19).

I also had to work around what seems like an LLDB bug to me. Otherwise, I'd have kept the code more similar to the GDB provider.
SBTarget.FindFirstType() does not find the types that I'm searching for (LeafNode<i32, i32>*):

target = node.GetTarget()
print("leaf type:", node.GetType())
internal_type = target.FindFirstType(node.GetType().GetName())
print("Actual type:", internal_type)

which prints

leaf type: struct alloc::collections::btree::node::LeafNode<int, int> *
Actual type: No value

All in all, my experience with LLDB debug provider was very fiddly/they seem to break easily but I think it would be better to have BTreeMap/BTreeSet providers than not have them.

Getting to run the debuginfo tests was a pain too because of #126092 and errors with import _lldb (#123621).
I ended up re-compling lldb from source against python 3.10 because the tests don't work if lldb is compiled against python 3.12.

Also, it seems like the tests are not run in CI? At least I had a test commit in the PR before to trigger a debuginfo test failure which I didn't see here in my PR.

@rustbot
Copy link
Collaborator

rustbot commented Apr 21, 2025

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Apr 21, 2025
@rust-log-analyzer

This comment has been minimized.

@ede1998 ede1998 force-pushed the add-lldb-btree-providers branch from 687620b to 950f608 Compare April 22, 2025 10:09
@Mark-Simulacrum
Copy link
Member

@rustbot author

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 4, 2025
@rustbot
Copy link
Collaborator

rustbot commented May 4, 2025

Reminder, once the PR becomes ready for a review, use @rustbot ready.

@ede1998 ede1998 force-pushed the add-lldb-btree-providers branch from e792e29 to bb58d72 Compare May 7, 2025 21:41
@rustbot rustbot added A-compiletest Area: The compiletest test runner A-testsuite Area: The testsuite used to check the correctness of rustc T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) labels May 7, 2025
@rust-log-analyzer

This comment has been minimized.

@ede1998 ede1998 force-pushed the add-lldb-btree-providers branch from bb58d72 to f5148c7 Compare May 9, 2025 20:08
@ede1998 ede1998 force-pushed the add-lldb-btree-providers branch from f5148c7 to 53ef2e0 Compare May 10, 2025 12:49
@ede1998 ede1998 marked this pull request as ready for review May 10, 2025 12:55
@rustbot
Copy link
Collaborator

rustbot commented May 10, 2025

Some changes occurred in src/tools/compiletest

cc @jieyouxu

@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label May 10, 2025
@ede1998
Copy link
Author

ede1998 commented May 10, 2025

@rustbot ready

@Mark-Simulacrum
Copy link
Member

@bors r+

@bors
Copy link
Collaborator

bors commented May 14, 2025

📌 Commit 53ef2e0 has been approved by Mark-Simulacrum

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 14, 2025
compiler-errors added a commit to compiler-errors/rust that referenced this pull request May 15, 2025
…r=Mark-Simulacrum

Add LLDB providers for BTreeMap and BTreeSet

Fixes rust-lang#111868.

I'm unsure what the supported LLDB versions for `rust-lldb` are. I tested with LLDB 18 and 19 and it works with those but I know that it does not work with LLDB 14 which was picked by my `codelldb` extension for some reason (even though it packages LLDB 19).

I also had to work around what seems like an LLDB bug to me. Otherwise, I'd have kept the code more similar to the GDB provider.
`SBTarget.FindFirstType()` does not find the types that I'm searching for (`LeafNode<i32, i32>*`):

```
target = node.GetTarget()
print("leaf type:", node.GetType())
internal_type = target.FindFirstType(node.GetType().GetName())
print("Actual type:", internal_type)
```

which prints

```
leaf type: struct alloc::collections::btree::node::LeafNode<int, int> *
Actual type: No value
```

All in all, my experience with LLDB debug provider was very fiddly/they seem to break easily but I think it would be better to have `BTreeMap`/`BTreeSet` providers than not have them.

Getting to run the `debuginfo` tests was a pain too because of rust-lang#126092 and errors with `import _lldb` (rust-lang#123621).
I ended up re-compling lldb from source against python 3.10 because the tests don't work if lldb is compiled against python 3.12.

Also, it seems like the tests are not run in CI? At least I had a test commit in the PR before to trigger a `debuginfo` test failure which I didn't see here in my PR.
bors added a commit to rust-lang-ci/rust that referenced this pull request May 15, 2025
…mpiler-errors

Rollup of 14 pull requests

Successful merges:

 - rust-lang#139749 (docs(library/core/src/pin): fix typo "necessarily" -> "necessary")
 - rust-lang#140130 (Add LLDB providers for BTreeMap and BTreeSet)
 - rust-lang#140685 (Simplify `Vec::as_non_null` implementation and make it `const`)
 - rust-lang#140712 (normalization: avoid incompletely constraining GAT args)
 - rust-lang#140768 (Improve `dangerous_implicit_aurorefs` diagnostic output)
 - rust-lang#140834 (move (or remove) some impl Trait tests)
 - rust-lang#140910 (Remove `stable` attribute from wasi fs (read_exact|write_all)_at)
 - rust-lang#140947 (Flush errors before deep normalize in `dropck_outlives`)
 - rust-lang#140966 (Remove #![feature(let_chains)] from library and src/librustdoc)
 - rust-lang#140977 ([win] Use a dash instead of slash for linker to avoid breaking lld)
 - rust-lang#140990 (VxWorks: updates from recent libc versions)
 - rust-lang#141003 (Improve ternary operator recovery)
 - rust-lang#141013 (Implement methods to set STARTUPINFO flags for Command API on Windows)
 - rust-lang#141026 (rustc-dev-guide subtree update)

r? `@ghost`
`@rustbot` modify labels: rollup
@compiler-errors
Copy link
Member

Failed in a rollup #141041 (comment)

@bors r-

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels May 15, 2025
@ede1998
Copy link
Author

ede1998 commented May 16, 2025

@compiler-errors What happened? Did my PR fail CI?

I cannot find any logs that show why the PR was not merged or what went wrong.

What do I have to do?

I think I found it:
https://github.com/rust-lang-ci/rust/actions/runs/15052777926/job/42311457239#step:28:25496

  failures:
  
  ---- [debuginfo-lldb] tests/debuginfo/pretty-std-collections.rs stdout ----
  NOTE: compiletest thinks it is using LLDB version 1500
  
  error: check directive(s) from `/Users/runner/work/rust/rust/tests/debuginfo/pretty-std-collections.rs` not found in debugger output. errors:
      (pretty-std-collections.rs:55) `[...] size=15 { [0] = 0 [1] = 1 [2] = 2 [3] = 3 [4] = 4 [5] = 5 [6] = 6 [7] = 7 [8] = 8 [9] = 9 [10] = 10 [11] = 11 [12] = 12 [13] = 13 [14] = 14 }`
      (pretty-std-collections.rs:61) `[...] size=15 { [0] = { 0 = 0 1 = 0 } [1] = { 0 = 1 1 = 1 } [2] = { 0 = 2 1 = 2 } [3] = { 0 = 3 1 = 3 } [4] = { 0 = 4 1 = 4 } [5] = { 0 = 5 1 = 5 } [6] = { 0 = 6 1 = 6 } [7] = { 0 = 7 1 = 7 } [8] = { 0 = 8 1 = 8 } [9] = { 0 = 9 1 = 9 } [10] = { 0 = 10 1 = 10 } [11] = { 0 = 11 1 = 11 } [12] = { 0 = 12 1 = 12 } [13] = { 0 = 13 1 = 13 } [14] = { 0 = 14 1 = 14 } }`
      (pretty-std-collections.rs:64) `[...] size=2 { [0] = { 0 = false 1 = [...] } [1] = { 0 = true 1 = [...]`
      (pretty-std-collections.rs:69) `[...] size=15 { [0] = { 0 = 0 1 = { 0 = 0 } } [1] = { 0 = 1 1 = { 0 = 1 } } [2] = { 0 = 2 1 = { 0 = 2 } } [3] = { 0 = 3 1 = { 0 = 3 } } [4] = { 0 = 4 1 = { 0 = 4 } } [5] = { 0 = 5 1 = { 0 = 5 } } [6] = { 0 = 6 1 = { 0 = 6 } } [7] = { 0 = 7 1 = { 0 = 7 } } [8] = { 0 = 8 1 = { 0 = 8 } } [9] = { 0 = 9 1 = { 0 = 9 } } [10] = { 0 = 10 1 = { 0 = 10 } } [11] = { 0 = 11 1 = { 0 = 11 } } [12] = { 0 = 12 1 = { 0 = 12 } } [13] = { 0 = 13 1 = { 0 = 13 } } [14] = { 0 = 14 1 = { 0 = 14 } } }`
      (pretty-std-collections.rs:73) `[...] size=1 { [0] = { 1 = 1 } }`
      (pretty-std-collections.rs:76) `[...] size=1 { [0] = { 0 = 1 } }`
      (pretty-std-collections.rs:79) `[...] size=1 { [0] = {} }`
  the following subset of check directive(s) was found successfully:
      (pretty-std-collections.rs:58) `(alloc::collections::btree::set::BTreeSet<int, alloc::alloc::Global>) empty_btree_set = size=0 `
      (pretty-std-collections.rs:82) `(alloc::collections::vec_deque::VecDeque<int, alloc::alloc::Global>) vec_deque = size=3 { [0] = 5 [1] = 3 [2] = 7 } `
      (pretty-std-collections.rs:85) `(alloc::collections::vec_deque::VecDeque<int, alloc::alloc::Global>) vec_deque2 = size=7 { [0] = 2 [1] = 3 [2] = 4 [3] = 5 [4] = 6 [5] = 7 [6] = 8 } `
      (pretty-std-collections.rs:88) `(std::collections::hash::map::HashMap<unsigned long, unsigned long, core::hash::BuildHasherDefault<pretty_std_collections::SimpleHasher> >) hash_map = size=4 { [0] = { 0 = 1 1 = 10 } [1] = { 0 = 2 1 = 20 } [2] = { 0 = 3 1 = 30 } [3] = { 0 = 4 1 = 40 } } `
      (pretty-std-collections.rs:91) `(std::collections::hash::set::HashSet<unsigned long, core::hash::BuildHasherDefault<pretty_std_collections::SimpleHasher> >) hash_set = size=4 { [0] = 1 [1] = 2 [2] = 3 [3] = 4 } `
  status: exit status: 0
  command: PYTHONPATH="/Applications/Xcode_15.4.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python" PYTHONUNBUFFERED="1" "/usr/bin/python3" "/Users/runner/work/rust/rust/src/etc/lldb_batchmode.py" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/debuginfo/pretty-std-collections.lldb/a" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/debuginfo/pretty-std-collections.lldb/pretty-std-collections.debugger.script"
  --- stdout -------------------------------
  LLDB batch-mode script
  ----------------------
  Debugger commands script is '/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/debuginfo/pretty-std-collections.lldb/pretty-std-collections.debugger.script'.
  Target executable is '/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/debuginfo/pretty-std-collections.lldb/a'.
  Current working directory is '/Users/runner/work/rust/rust'
  Creating a target for '/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/debuginfo/pretty-std-collections.lldb/a'
  settings set auto-confirm true
  
  version
  lldb-1500.0.404.7 Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4) 
  command script import /Users/runner/work/rust/rust/src/etc/lldb_lookup.py
  # Forces test-compliant formatting to all other types
  type synthetic add -l lldb_lookup.synthetic_lookup -x ".*" --category Rust
  type summary add -F _ -e -x -h "^.*$" --category Rust
  # Std String
  type synthetic add -l lldb_lookup.StdStringSyntheticProvider -x "^(alloc::([a-z_]+::)+)String$" --category Rust
  type summary add -F lldb_lookup.StdStringSummaryProvider  -e -x -h "^(alloc::([a-z_]+::)+)String$" --category Rust
  # Std str
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^&(mut )?str$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^&(mut )?str$" --category Rust
  ## MSVC
  type synthetic add -l lldb_lookup.MSVCStrSyntheticProvider -x "^ref(_mut)?\$<str\$>$" --category Rust
  type summary add -F lldb_lookup.StdStrSummaryProvider -e -h -x "^ref(_mut)?\$<str\$>$" --category Rust
  # Array
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^&(mut )?\\[.+\\]$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^&(mut )?\\[.+\\]$" --category Rust
  # Slice
  ## MSVC
  type synthetic add -l lldb_lookup.MSVCStdSliceSyntheticProvider -x "^ref(_mut)?\$<slice2\$<.+> >" --category Rust
  type summary add -F lldb_lookup.StdSliceSummaryProvider -e -x -h "^ref(_mut)?\$<slice2\$<.+> >" --category Rust
  # OsString
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^(std::ffi::([a-z_]+::)+)OsString$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^(std::ffi::([a-z_]+::)+)OsString$" --category Rust
  # Vec
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^(alloc::([a-z_]+::)+)Vec<.+>$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^(alloc::([a-z_]+::)+)Vec<.+>$" --category Rust
  # VecDeque
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^(alloc::([a-z_]+::)+)VecDeque<.+>$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^(alloc::([a-z_]+::)+)VecDeque<.+>$" --category Rust
  # BTreeSet
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^(alloc::([a-z_]+::)+)BTreeSet<.+>$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^(alloc::([a-z_]+::)+)BTreeSet<.+>$" --category Rust
  # BTreeMap
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^(alloc::([a-z_]+::)+)BTreeMap<.+>$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^(alloc::([a-z_]+::)+)BTreeMap<.+>$" --category Rust
  # HashMap
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^(std::collections::([a-z_]+::)+)HashMap<.+>$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^(std::collections::([a-z_]+::)+)HashMap<.+>$" --category Rust
  # HashSet
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^(std::collections::([a-z_]+::)+)HashSet<.+>$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^(std::collections::([a-z_]+::)+)HashSet<.+>$" --category Rust
  # Rc
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^(alloc::([a-z_]+::)+)Rc<.+>$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^(alloc::([a-z_]+::)+)Rc<.+>$" --category Rust
  # Arc
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^(alloc::([a-z_]+::)+)Arc<.+>$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^(alloc::([a-z_]+::)+)Arc<.+>$" --category Rust
  # Cell
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^(core::([a-z_]+::)+)Cell<.+>$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^(core::([a-z_]+::)+)Cell<.+>$" --category Rust
  # RefCell
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^(core::([a-z_]+::)+)Ref<.+>$" --category Rust
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^(core::([a-z_]+::)+)RefMut<.+>$" --category Rust
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^(core::([a-z_]+::)+)RefCell<.+>$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^(core::([a-z_]+::)+)Ref<.+>$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^(core::([a-z_]+::)+)RefMut<.+>$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^(core::([a-z_]+::)+)RefCell<.+>$" --category Rust
  # NonZero
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^(core::([a-z_]+::)+)NonZero<.+>$" --category Rust
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^core::num::([a-z_]+::)*NonZero.+$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^(core::([a-z_]+::)+)NonZero<.+>$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^core::num::([a-z_]+::)*NonZero.+$" --category Rust
  # PathBuf
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^(std::([a-z_]+::)+)PathBuf$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^(std::([a-z_]+::)+)PathBuf$" --category Rust
  # Path
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^&(mut )?(std::([a-z_]+::)+)Path$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^&(mut )?(std::([a-z_]+::)+)Path$" --category Rust
  # Enum
  ## MSVC
  type synthetic add -l lldb_lookup.MSVCEnumSyntheticProvider -x "^enum2\$<.+>$" --category Rust
  type summary add -F lldb_lookup.MSVCEnumSummaryProvider -e -x -h "^enum2\$<.+>$" --category Rust
  ## MSVC Variants
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^enum2\$<.+>::.*$" --category Rust
  type summary add -F lldb_lookup.summary_lookup  -e -x -h "^enum2\$<.+>::.*$" --category Rust
  # Tuple
  type synthetic add -l lldb_lookup.synthetic_lookup -x "^\(.*\)$" --category Rust
  ## MSVC
  type synthetic add -l lldb_lookup.MSVCTupleSyntheticProvider -x "^tuple\$<.+>$" --category Rust
  type summary add -F lldb_lookup.TupleSummaryProvider -e -x -h "^tuple\$<.+>$" --category Rust
  type category enable Rust
  
  breakpoint set --file 'pretty-std-collections.rs' --line 173
  Breakpoint 1: where = a`pretty_std_collections::main::h5787c23d7659c427 + 1720 at pretty-std-collections.rs:173:5, address = 0x000000010002508c 
  DEBUG: breakpoint added, id = 1
  run
  Process 19257 stopped * thread #1, name = 'main', queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 frame #0: 0x000000010002508c a`pretty_std_collections::main::h5787c23d7659c427 at pretty-std-collections.rs:173:5 170 hash_set.insert(i); 171 } 172 -> 173 zzz(); // #break ^ 174 } 175 176 fn zzz() { Target 0: (a) stopped. Process 19257 launched: '/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/debuginfo/pretty-std-collections.lldb/a' (arm64) 
  DEBUG: registering breakpoint callback, id = 1
  Error while trying to register breakpoint callback, id = 1, message = error: could not get num args: can't find callable: breakpoint_callback
  
  v btree_set
  (alloc::collections::btree::set::BTreeSet<int, alloc::alloc::Global>) btree_set = size=15 {} 
  v empty_btree_set
  (alloc::collections::btree::set::BTreeSet<int, alloc::alloc::Global>) empty_btree_set = size=0 
  v btree_map
  (alloc::collections::btree::map::BTreeMap<int, int, alloc::alloc::Global>) btree_map = size=15 {} 
  v option_btree_map
  (alloc::collections::btree::map::BTreeMap<bool, core::option::Option<bool>, alloc::alloc::Global>) option_btree_map = size=2 {} 
  v nasty_btree_map
  (alloc::collections::btree::map::BTreeMap<int, pretty_std_collections::MyLeafNode, alloc::alloc::Global>) nasty_btree_map = size=15 {} 
  v zst_key_btree_map
  (alloc::collections::btree::map::BTreeMap<void, int, alloc::alloc::Global>) zst_key_btree_map = size=1 {} 
  v zst_val_btree_map
  (alloc::collections::btree::map::BTreeMap<int, void, alloc::alloc::Global>) zst_val_btree_map = size=1 {} 
  v zst_key_val_btree_map
  (alloc::collections::btree::map::BTreeMap<void, void, alloc::alloc::Global>) zst_key_val_btree_map = size=1 {} 
  v vec_deque
  (alloc::collections::vec_deque::VecDeque<int, alloc::alloc::Global>) vec_deque = size=3 { [0] = 5 [1] = 3 [2] = 7 } 
  v vec_deque2
  (alloc::collections::vec_deque::VecDeque<int, alloc::alloc::Global>) vec_deque2 = size=7 { [0] = 2 [1] = 3 [2] = 4 [3] = 5 [4] = 6 [5] = 7 [6] = 8 } 
  v hash_map
  (std::collections::hash::map::HashMap<unsigned long, unsigned long, core::hash::BuildHasherDefault<pretty_std_collections::SimpleHasher> >) hash_map = size=4 { [0] = { 0 = 1 1 = 10 } [1] = { 0 = 2 1 = 20 } [2] = { 0 = 3 1 = 30 } [3] = { 0 = 4 1 = 40 } } 
  v hash_set
  (std::collections::hash::set::HashSet<unsigned long, core::hash::BuildHasherDefault<pretty_std_collections::SimpleHasher> >) hash_set = size=4 { [0] = 1 [1] = 2 [2] = 3 [3] = 4 } 
  quit
  ------------------------------------------
  --- stderr -------------------------------
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  Traceback (most recent call last):
    File "/Users/runner/work/rust/rust/src/etc/lldb_providers.py", line 1229, in get_child_at_index
      key, value = self.items[index]
  IndexError: list index out of range
  ------------------------------------------
  
  
  
  failures:
      [debuginfo-lldb] tests/debuginfo/pretty-std-collections.rs
  
  test result: FAILED. 116 passed; 1 failed; 49 ignored; 0 measured; 0 filtered out; finished in 49.32s
  
  Some tests failed in compiletest suite=debuginfo mode=debuginfo host=aarch64-apple-darwin target=aarch64-apple-darwin
  Build completed unsuccessfully in 0:34:07
    local time: Thu May 15 19:22:48 UTC 2025
    network time: Thu, 15 May 2025 19:22:49 GMT
  Error: Process completed with exit code 1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-compiletest Area: The compiletest test runner A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

No BTreeMap BTreeSet debug visualizers for lldb / macOS
6 participants