about summary refs log tree commit diff
path: root/src/etc/lldb_providers.py
AgeCommit message (Collapse)AuthorLines
2025-02-12fix string and tuple struct formattingWalnut-1/+1
2025-02-07Fix import/attribute errors related to `SBTypeStaticField`Walnut-13/+43
2025-01-18slots fixWalnut-1/+1
2025-01-11doc comment for get_template_argsWalnut-12/+13
2025-01-11tidyWalnut-0/+2
2025-01-11add alternate inner type lookup for hashmap/set when template args missingWalnut-1/+27
2025-01-11More robust sequence formatterWalnut-1/+8
2025-01-10more robust tuple summaryWalnut-3/+13
2025-01-10add alternate inner type lookup for vec/string for missing template argsWalnut-5/+84
2025-01-10add MSVC str providersWalnut-32/+108
2025-01-10add msvc enum providersWalnut-0/+175
2025-01-10add MSVC slice providersWalnut-2/+25
2025-01-10add MSVC tuple providersWalnut-0/+53
2024-12-31use python built in type annotationsWalnut-165/+91
2024-12-04Reformat Python code with `ruff`Jakub Beránek-55/+131
2024-11-11Fix broken urlwangjingcun-1/+1
Signed-off-by: wangjingcun <wangjingcun@aliyun.com>
2024-10-11rename RcBox in other places tooJonathan Dönszelmann-2/+2
2024-08-11Fix debuginfo providers/testsBen Kimock-4/+4
2024-05-11lldb-formatters: Use StdSliceSyntheticProvider for &strVladimir Makayev-0/+3
2024-05-05Implement lldb formattter for "clang encoded" enums (LLDB 18.1+)Vladimir Makayev-0/+52
Summary: I landed a fix last year to enable `DW_TAG_variant_part` encoding in LLDBs (https://reviews.llvm.org/D149213). This PR is a corresponding fix in synthetic formatters to decode that information. This is in no way perfect implementation but at least it improves the status quo. But most types of enums will be visible and debuggable in some way. I've also updated most of the existing tests that touch enums and re-enabled test cases based on LLDB for enums. Test Plan: ran tests `./x test tests/debuginfo/`. Also tested manually in LLDB CLI and LLDB VSCode Other Thoughs A better approach would probably be adopting [formatters from codelldb](https://github.com/vadimcn/codelldb/blob/master/formatters/rust.py). There is some neat hack that hooks up summary provider via synthetic provider which can ultimately fix more display issues for Rust types and enums too. But getting it to work well might take more time that I have right now.
2024-03-29Add rust-lldb pretty printing for Path and PathBufNathan Henrie-0/+29
Fixes https://github.com/rust-lang/rust/issues/120553 Fixes https://github.com/rust-lang/rust/issues/48462
2024-03-14Add comment about `NonZero` printing as character literal.Markus Reiter-0/+2
2024-03-14Fix `StdNonZeroNumberSummaryProvider`.Markus Reiter-4/+7
2023-12-11update debug providers to match new RawVec capacity fieldThe 8472-2/+6
2023-06-16Apply changes to fix python linting errorsTrevor Gross-1/+1
2023-04-28Fix unavailable urlcui fliter-1/+1
Signed-off-by: cui fliter <imcusg@gmail.com>
2023-04-20Spelling tools/compiletestJosh Soref-2/+2
spelling: exactly spelling: synthetic Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-20Update VecDeque implementationMarkus Everling-8/+4
2022-08-24Add GDB/LLDB pretty-printers for NonZero typesArtem Mukhin-0/+8
2022-04-14Fix debugger testsEduardo Sánchez Muñoz-0/+4
2021-04-06Fix HashMap/HashSet LLDB pretty-printer after hashbrown 0.11.0ortem-6/+8
The pretty-printer was broken in https://github.com/rust-lang/rust/pull/77566 after updating hashbrown to 0.11.0. Note that the corresponding GDB pretty-printer was updated properly.
2021-03-16feat: Update hashbrown to instantiate less llvm IRMarkus Westerlind-1/+1
Includes https://github.com/rust-lang/hashbrown/pull/204 and https://github.com/rust-lang/hashbrown/pull/205 (not yet merged) which both server to reduce the amount of IR generated for hashmaps. Inspired by the llvm-lines data gathered in https://github.com/rust-lang/rust/pull/76680
2021-02-06Resolve typedef in HashMap lldb pretty-printer only if possibleortem-1/+3
Previously, `GetTypedefedType` was invoked unconditionally. But this did not work in case of `rust-lldb` without Rust patches since there was no typedef actually.
2020-11-20Resolve typedefs in HashMap gdb/lldb pretty-printersortem-1/+1
`GetTypedefedType` (LLDB) and `strip_typedefs` (GDB) calls are needed to resolve key and value types completely. Without these calls, debugger doesn't show the actual type. * Before (without `GetTypedefedType`): (lldb) frame variable hm[0] (T) hm[0] = { ... } * After (with `GetTypedefedType`): (lldb) frame variable hm[0] ((i32, alloc::string::String)) hm[0] = { ... }
2020-09-08Implement HashSet in terms of hashbrown::HashSetMatt Brubeck-1/+12
2020-08-07Handle new HashMap layout in GDB and LLDBAmanieu d'Antras-2/+9
2020-06-09Implement new gdb/lldb pretty-printersortem-0/+715
Replace old GDB and LLDB pretty-printers with new ones which were originally written for IntelliJ Rust. New LLDB pretty-printers support synthetic children. New GDB/LLDB pretty-printers support all Rust types supported by old pretty-printers, and also support: Rc, Arc, Cell, Ref, RefCell, RefMut, HashMap, HashSet.