summaryrefslogtreecommitdiff
path: root/misc/lldb_rb
AgeCommit message (Collapse)Author
6 daysGet rid of FL_EXIVARJean Boussier
Now that the shape_id gives us all the same information, it's no longer needed. Notes: Merged: https://github.com/ruby/ruby/pull/13612
2025-04-15Always look for the top-level RBasic in LLDB scriptsÉtienne Barrié
`rp` and other commands were broken for me because they always showed the object as a T_NONE. The reason was that instead of returning the type `struct RBasic`, FindFirstType("struct RBasic") was returning `yjit::cruby::autogened::RBasic`. Explicitly asking for the top-level RBasic by prefixing it with `::` is enough to fix those commands. Notes: Merged: https://github.com/ruby/ruby/pull/13096
2025-04-15Fix LLDB heap_page commandÉtienne Barrié
Move _append_command_output and _append_expression to LLDBInterface, and use it from HeapPageCommand after setting result. Notes: Merged: https://github.com/ruby/ruby/pull/13096
2025-04-08Fix lldb debug scripts (#13048)Eileen
In ruby/ruby#13008 `RVALUE` was removed without replacement. This means the lldb scripts that relied on `RVALUE` stopped working. I updated the ones that were using it just for the bytesize to use `slot_size` and then round to the nearest power of 40. We can't use `slot_size` directly because in debug mode it's `48` but `RVALUE` is `40` bytes. For the `as_type` method, I updated it to check the type. It's only used for `bignum` and `array` so that's a simple change. Lastly, for the `dump_page` method I replaced it with `struct free_slot` since that's looking at the freelist. `struct RVALUE` has been removed from all the scripts and I verified that `rp` is fixed. I'm not confident the `dump_page` method is fixed, the freelist looks off, but for now this gets us closer. Notes: Merged-By: eileencodes <[email protected]>
2025-03-28Remove RUBY_FL_PROMOTED{0,1} from debugger scriptsÉtienne Barrié
These flags were removed in d426343418aab6148706860bd1678ac309dc12c0 and print_flags is broken because of it. Notes: Merged: https://github.com/ruby/ruby/pull/13006
2024-06-02Make interchangeable NODE types aliasesNobuyoshi Nakada
2024-05-28lldb: Show coderangeNobuyoshi Nakada
2024-05-16Fix dump of NODE [ci skip]Nobuyoshi Nakada
2024-04-04NODE_LIT is not used anymoreyui-knk
2024-03-25Show the chilled status of a String [ci skip]Nobuyoshi Nakada
2024-02-21Introduce NODE_REGX to manage regexp literalyui-knk
2024-02-20[Feature #20257] Rearchitect Ripperyui-knk
Introduce another semantic value stack for Ripper so that Ripper can manage both Node and Ruby Object separately. This rearchitectutre of Ripper solves these issues. Therefore adding test cases for them. * [Bug 10436] https://bugs.ruby-lang.org/issues/10436 * [Bug 18988] https://bugs.ruby-lang.org/issues/18988 * [Bug 20055] https://bugs.ruby-lang.org/issues/20055 Checked the differences of `Ripper.sexp` for files under `/test/ruby` are only on test_pattern_matching.rb. The differences comes from the differences between `new_hash_pattern_tail` functions between parser and Ripper. Ripper `new_hash_pattern_tail` didn’t call `assignable` then `kw_rest_arg` wasn’t marked as local variable. This is also fixed by this commit. ``` --- a/./tmp/before/test_pattern_matching.rb +++ b/./tmp/after/test_pattern_matching.rb @@ -3607,7 +3607,7 @@ [:in, [:hshptn, nil, [], [:var_field, [:@ident, “a”, [984, 13]]]], [[:binary, - [:vcall, [:@ident, “a”, [985, 10]]], + [:var_ref, [:@ident, “a”, [985, 10]]], :==, [:hash, nil]]], nil]]], @@ -3662,7 +3662,7 @@ [:in, [:hshptn, nil, [], [:var_field, [:@ident, “a”, [993, 13]]]], [[:binary, - [:vcall, [:@ident, “a”, [994, 10]]], + [:var_ref, [:@ident, “a”, [994, 10]]], :==, [:hash, [:assoclist_from_args, @@ -3813,7 +3813,7 @@ [:command, [:@ident, “raise”, [1022, 10]], [:args_add_block, - [[:vcall, [:@ident, “b”, [1022, 16]]]], + [[:var_ref, [:@ident, “b”, [1022, 16]]]], false]]], [:else, [[:var_ref, [:@kw, “true”, [1024, 10]]]]]]]], nil, @@ -3876,7 +3876,7 @@ [:@int, “0”, [1033, 15]]], :“&&“, [:binary, - [:vcall, [:@ident, “b”, [1033, 20]]], + [:var_ref, [:@ident, “b”, [1033, 20]]], :==, [:hash, nil]]]], nil]]], @@ -3946,7 +3946,7 @@ [:@int, “0”, [1042, 15]]], :“&&“, [:binary, - [:vcall, [:@ident, “b”, [1042, 20]]], + [:var_ref, [:@ident, “b”, [1042, 20]]], :==, [:hash, [:assoclist_from_args, @@ -5206,7 +5206,7 @@ [[:assoc_new, [:@label, “c:“, [1352, 22]], [:@int, “0”, [1352, 25]]]]]], - [:vcall, [:@ident, “r”, [1352, 29]]]], + [:var_ref, [:@ident, “r”, [1352, 29]]]], false]]], [:binary, [:call, @@ -5299,7 +5299,7 @@ [:assoc_new, [:@label, “c:“, [1367, 34]], [:@int, “0”, [1367, 37]]]]]], - [:vcall, [:@ident, “r”, [1367, 41]]]], + [:var_ref, [:@ident, “r”, [1367, 41]]]], false]]], [:binary, [:call, @@ -5931,7 +5931,7 @@ [:in, [:hshptn, nil, [], [:var_field, [:@ident, “r”, [1533, 11]]]], [[:binary, - [:vcall, [:@ident, “r”, [1534, 8]]], + [:var_ref, [:@ident, “r”, [1534, 8]]], :==, [:hash, [:assoclist_from_args, ```
2024-01-02Introduce NODE_FILEyui-knk
`__FILE__` was managed by `NODE_STR` with `String` object. This commit introduces `NODE_FILE` and `struct rb_parser_string` so that 1. `__FILE__` is detectable from AST Node 2. Reduce dependency ruby object
2024-01-02LLDB: Print actual node structure of NODE_LINEyui-knk
2023-12-06Fix RCLASS_EXT dump [ci skip]Nobuyoshi Nakada
2023-10-31LLDB: Dump table structs in Hash [ci skip]Nobuyoshi Nakada
2023-10-25LLDB: Use `expression` to save the result into the history [ci skip]Nobuyoshi Nakada
2023-10-10LLDB: Print actual node structure [ci skip]yui-knk
2023-09-30Fix RBignum print [ci skip]Nobuyoshi Nakada
2023-09-30Fix RArray print [ci skip]Nobuyoshi Nakada
2023-09-30Delete empty lines at EOF [ci skip]Nobuyoshi Nakada
2023-07-07Add ruby_globals to lldb for easier debugging (#8041)Jemma Issroff
Notes: Merged-By: jemmaissroff
2023-06-11`RString::len` was moved at 7577c101ed6452de3e72fadb43db595946acc701Nobuyoshi Nakada
[ci skip]
2023-04-10LLDB: Fix T_ARRAY inspect [ci skip]Nobuyoshi Nakada
2023-03-30[ci skip] LLDB: Fix rp for arraysMatt Valentine-House
Notes: Merged: https://github.com/ruby/ruby/pull/7632
2023-03-31Fix missing receiver [ci sip]Nobuyoshi Nakada
2023-03-21[ci skip] Move rb_id2str into new LLDB formatMatt Valentine-House
Notes: Merged: https://github.com/ruby/ruby/pull/6448
2023-03-17* remove trailing spaces. [ci skip]git
2023-03-17[ci skip] Move rp helper to new LLDB formatMatt Valentine-House
For now, the old function still exists as `old_rp`, in order to debug issues with this command. Notes: Merged: https://github.com/ruby/ruby/pull/7531
2023-02-22[lldb] Add a print_flags command (#7358)Matt Valentine-House
Notes: Merged-By: peterzhu2118 <[email protected]>
2022-11-01Ivar copy needs to happen _before_ setting the shapeAaron Patterson
When we copy instance variables, it is possible for the GC to be kicked off. The GC looks at the shape to determine what slots to mark inside the object. If the shape is set too soon, the GC could think that there are more instance variables on the object than there actually are at that moment.
2022-08-19Write interface instead of interfactKaíque Kandy Koga
Notes: Merged: https://github.com/ruby/ruby/pull/6254
2022-08-19* remove trailing spaces. [ci skip]git
2022-08-18[ci skip][Feature #18910][lldb] Dedup lldb_initMatt Valentine-House
by moving it fully into RbBaseCommand Notes: Merged: https://github.com/ruby/ruby/pull/6129
2022-08-18[ci-skip][Feature #18910][lldb] New directory structureMatt Valentine-House
Push the newly refactored lldb files into a sub-directory so that we're not cluttering up the misc directory Notes: Merged: https://github.com/ruby/ruby/pull/6129