Commit Graph
289 Commits
Author SHA1 Message Date
Aaron Patterson 3d474e19fd Rudimentary support for disassembling rb_iseq_t
I need to disassemble instruction sequences while debugging, so I wrote
this.

Usage is like this:

```
(lldb) p iseq
(rb_iseq_t *) $147 = 0x0000000101068400
(lldb) rbdisasm iseq
0000 putspecialobject( 3 )
0002 putnil
0003 defineclass( ID: 0x560b, (rb_iseq_t *)0x1010681d0, 2 )
0007 pop
0008 putspecialobject( 3 )
0010 putnil
0011 defineclass( ID: 0x56eb, (rb_iseq_t *)0x101063b58, 2 )
0015 leave
```

Also thanks a ton to @kivikakk helping me figure out how to navigate LLDB's Python 😆
2020-09-22 13:40:57 -07:00
Aaron Patterson 3fb255625b add lldb functions for getting the heap page / heap page body 2020-09-02 16:45:54 -07:00
Aaron Patterson 933035d303 support T_MATCH in lldb 2020-09-02 16:45:13 -07:00
Aaron Patterson 5483bf8fa4 add T_ZOMBIE support to lldb scripts 2020-08-27 09:00:19 -07:00
Nobuyoshi Nakada 6aa3aaac05 lldb_cruby.py: show the sign of Bignum [ci skip] 2020-06-23 15:56:59 +09:00
Hiroshi SHIBATA 16854c95c2 Removed sdbm entries from toolchanins 2020-06-19 08:26:47 +09:00
Aaron Patterson 7574b836a9 Add T_IMEMO support to lldb
I'm trying to find why a reference to an IMEMO object isn't being
updated
2020-05-07 15:54:00 -07:00
Aaron Patterson 56c6d520a0 Add T_MOVED support to lldb 2020-05-07 14:19:45 -07:00
Nobuyoshi Nakada b5174beae6 lldb_cruby.py: fixed empty string dump [ci skip] 2020-04-26 12:53:11 +09:00
Nobuyoshi Nakada db16629008 Fixed misspellings
Fixed misspellings reported at [Bug #16437], only in ruby and rubyspec.
2019-12-20 09:32:42 +09:00
Nobuyoshi Nakada 86461fc28c lldb_cruby.py: improved dump of Symbol
[ci skip]
2019-11-25 16:53:27 +09:00
Nobuyoshi Nakada 9af52c0d09 lldb_cruby.py: fixed dump of embedded RArray
[ci skip]
2019-11-25 09:21:27 +09:00
Nobuyoshi Nakada 8439caab0a Refined rp output [ci skip]
So that the result structure can be accessed as `$number`
variables, not a mere `VALUE`.
2019-10-24 23:38:27 +09:00
Nobuyoshi Nakada e078352a78 lldb_cruby.py: fixed inspecting string [ci skip]
Show the size of String.

To see the whole contents even after NUL char:

```
(lldb) rp str
(const char [5]) $1 = "x"
(lldb) memory read -s1 --format x --count `sizeof($1)` -- &$1                                                                                          0x1010457a8: 0x78 0x00 0x61 0x61 0x61
```
2019-10-09 09:08:21 +09:00
Nobuyoshi Nakada 98131f148f lldb_cruby.py: fixed embedded string ptr [ci skip]
Use GetLocation to get the address of embedded array.
2019-10-09 09:08:09 +09:00
Romain Tartière 1c999952e7 Resolve unused local variable reported by LGTM
LGTM reports that the value assigned to local variable 'shared' is never
used:
https://lgtm.com/projects/g/ruby/ruby/snapshot/f319a5d064627c6641817ec2ed16b97b4d215148/files/misc/lldb_cruby.py#x6512c0281581a470:1

This problem was introduced in by the refactoring that took place in
7c496b6624.
2019-10-03 13:44:52 +09:00
Nobuyoshi Nakada 112c9f1430 lldb_inspect: removed unnecessary newline and end option 2019-09-25 16:58:24 +09:00
Nobuyoshi Nakada c5a97d995a misc/lldb_cruby.py: update for python3 [ci skip]
lldb module bundled with Xcode is for Python 3 now.
2019-09-24 21:05:29 +09:00
Nobuyoshi Nakada 0526366033 misc/lldb_cruby.py: removed unused module commands [ci skip] 2019-09-24 20:59:47 +09:00
Aaron Patterson bdc36094e3 Add some NODE information for lldb
Just adds a conditional in the lldb scripts so we can more easily debug
NODE objects.
2019-08-29 14:51:34 -07:00
Jeremy Evans b4dfac2c12 Fix ArgumentError in expand_tabs.rb
This fixes the following in my environment:

misc/expand_tabs.rb:29:in `=~': invalid byte sequence in US-ASCII (ArgumentError)

This switches from =~ to start_with? as a regular expression is
not actually needed here.
2019-08-25 12:53:15 -07:00
Takashi Kokubun 1c5a268239 Simplify expand_tabs.rb file selection 2019-08-23 13:57:42 +09:00
Takashi Kokubun 15eaedf805 Add misc/expand_tabs.rb ported from auto-style.rb
This is implemented to close [Misc #16112] because all other options got
at least one objection, and nobody has objected to this solution.

This code is a little complicated for the purpose, but that's just
because it includes some historical code for auto-style.rb:
https://github.com/ruby/ruby-commit-hook/blob/918a7c31b69ad2f7b125608c1c6a1f4fd01ec15a/bin/auto-style.rb

Please feel free to improve this file as you like.

[Misc #16112]
2019-08-22 21:24:47 +09:00
Aaron Patterson 5f05851ae3 add FROZEN to lldb debug output 2019-05-09 12:27:44 -07:00
tenderlove ad67845ba8 Fix typo in lldb script
Also fix tests

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-02 21:13:22 +00:00
tenderlove f0f6615a25 add regex support to lldb debug output
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-01 22:53:34 +00:00
nobu 047111584f ruby-style.el: ruby-style-c-mode by VCS [ci skip]
* misc/ruby-style.el (ruby-style-c-mode): set ruby-style if the
  remote repository is ruby.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-27 13:47:49 +00:00
nobu 3a9c427908 lldb_cruby.py: T_COMPLEX support [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-20 17:19:37 +00:00
nobu fa78eb2fcf lldb_cruby.py: T_RATIONAL support [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-20 12:48:07 +00:00
nobu 103a0b9869 lldb_rp: support Symbol [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-04 14:00:39 +00:00
nobu cdb312ab31 lldb_rp: support T_CLASS,T_MODULE,T_ICLASS [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-03 09:54:25 +00:00
nobu 8885389bd3 lldb_rp: use append_command_output [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64908 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-03 09:54:21 +00:00
nobu fb35457f77 lldb_rp: support more types [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64903 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-03 04:27:19 +00:00
nobu 7c496b6624 lldb_rp: fix the order of results [ci skip]
The outputs from HandleCommand are printed immediately before print
statements.  Fix the order in `result` by capturing the outputs.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-03 04:07:16 +00:00
nobu 3cfe3051c5 lldb_rp: reload debug info if not loaded yet [ci skip]
As debug infos in shared libraries are not accessible until loaded,
retry loading the infos when needed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64901 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-02 19:14:24 +00:00
nobu 6b4d78fc43 lldb_cruby.py: T_DATA support [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-01 14:48:54 +00:00
hsbt f021df0099 Partly reverted for ruby-style.el.
Revert "Removed old elisp files. New upstream repository was moved https://github.com/ruby/elisp."

  This reverts commit 7eedd308b8.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-14 13:19:45 +00:00
hsbt 23e8fc3918 Added entries for lldb files in misc directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-14 12:37:51 +00:00
hsbt 7eedd308b8 Removed old elisp files. New upstream repository was moved https://github.com/ruby/elisp.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-14 12:34:50 +00:00
kazu f03e68edb8 Remove old ruby-mode.el
Use emacs bundled ruby-mode.el instead.
[Feature #6823] [ci skip]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-13 12:06:18 +00:00
k0kubun b83ae7476e misc/ruby-style.el: use spaces for indentation
instead of hard tabs.

[Bug #14246]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-17 02:37:51 +00:00
nobu 487dfb9d22 ruby-additional.el: shorten here-doc markers
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60094 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-02 04:06:55 +00:00
knu 8b8597e23e Import ruby-electric.el version 2.3.1 from upstream
It now supports [enh-ruby-mode](https://github.com/zenspider/enhanced-ruby-mode).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59569 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-08-10 12:37:04 +00:00
naruse dc7f2cd586 Add initial test for lldb extension
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-08-03 09:39:25 +00:00
yugui bc5d11bc03 Port more commands from .gdbinit to lldb
* misc/lldb_cury.py (dump_node, SDR, rb_count_objects): added

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-08-02 05:27:25 +00:00
nobu be701dc57f debug.c: more enums
* debug.c (ruby_dummy_gdb_enums): add enums for RObject, RModule,
  RString, RArray.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-06-01 04:43:03 +00:00
nobu 56abb12f8d lldb_cruby.py: eval outside frames
* misc/lldb_cruby.py (lldb_rp): evaluate without frames when no
  process is running, and show error messages.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-31 02:42:10 +00:00
nobu 1245a4a4fb lldb_cruby.py: constants from the target
* misc/lldb_cruby.py (lldb_init): get constants from
  ruby_dummy_gdb_enums in the target.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-28 14:17:25 +00:00
naruse 4d177a1f40 Initial commit of LLDB port of debug utility
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58927 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-27 17:04:31 +00:00
nobu 508fb9fba1 ruby-additional.el: unquoted code block
* misc/ruby-additional.el (ruby-insert-heredoc-code-block): make
  code between "begin;" and "end;" unquoted.  still quotable
  before "begin;".

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-16 06:59:40 +00:00