Skip to content

Commit 2f5d4d0

Browse files
Add compatibiltiy notes.
1 parent 186bff0 commit 2f5d4d0

File tree

2 files changed

+62
-18
lines changed

2 files changed

+62
-18
lines changed

context/getting-started.md

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,47 +15,47 @@ $ gem install toolbox
1515
Install the GDB extensions (automatically adds to `~/.gdbinit`):
1616

1717
~~~ bash
18-
$ bake toolbox:gdb:install
18+
$ bake -g toolbox toolbox:gdb:install
1919
~~~
2020

2121
This adds a single line to your `~/.gdbinit` that sources the extensions from the gem's data directory. The extensions will then load automatically every time you start GDB.
2222

2323
To install to a custom `.gdbinit` location:
2424

2525
~~~ bash
26-
$ bake toolbox:gdb:install gdbinit=/path/to/custom/gdbinit
26+
$ bake -g toolbox toolbox:gdb:install gdbinit=/path/to/custom/gdbinit
2727
~~~
2828

2929
### Installing LLDB Extensions
3030

3131
Install the LLDB extensions (automatically adds to `~/.lldbinit`):
3232

3333
~~~ bash
34-
$ bake toolbox:lldb:install
34+
$ bake -g toolbox toolbox:lldb:install
3535
~~~
3636

3737
This adds a command script import line to your `~/.lldbinit` that loads the extensions from the gem's data directory. The extensions will then load automatically every time you start LLDB.
3838

3939
To install to a custom `.lldbinit` location:
4040

4141
~~~ bash
42-
$ bake toolbox:lldb:install lldbinit=/path/to/custom/lldbinit
42+
$ bake -g toolbox toolbox:lldb:install lldbinit=/path/to/custom/lldbinit
4343
~~~
4444

4545
### Verifying Installation
4646

4747
Check GDB installation status:
4848

4949
~~~ bash
50-
$ bake toolbox:gdb:info
50+
$ bake -g toolbox toolbox:gdb:info
5151
Ruby Toolbox GDB Extensions v0.1.0
5252
Status: ✓ Installed
5353
~~~
5454

5555
Check LLDB installation status:
5656

5757
~~~ bash
58-
$ bake toolbox:lldb:info
58+
$ bake -g toolbox toolbox:lldb:info
5959
Ruby Toolbox LLDB Extensions v0.1.0
6060
Status: ✓ Installed
6161
~~~
@@ -72,16 +72,16 @@ Recursively print Ruby hash and array structures...
7272
To remove the GDB extensions:
7373

7474
~~~ bash
75-
$ bake toolbox:gdb:uninstall
75+
$ bake -g toolbox toolbox:gdb:uninstall
7676
~~~
7777

7878
To remove the LLDB extensions:
7979

8080
~~~ bash
81-
$ bake toolbox:lldb:uninstall
81+
$ bake -g toolbox toolbox:lldb:uninstall
8282
~~~
8383

84-
This removes the source line from your `~/.gdbinit`.
84+
This removes the source line from your `~/.gdbinit` or `~/.lldbinit`.
8585

8686
## Core Concepts
8787

@@ -176,3 +176,25 @@ Ruby hashes and arrays can contain nested structures:
176176
~~~
177177

178178
The `--depth` flag controls how deep to recurse into nested objects.
179+
180+
## Requirements
181+
182+
- GDB with Python support (GDB 7.0+) or LLDB with Python support.
183+
- Ruby 3.3+ recommended.
184+
185+
### Platform Support
186+
187+
- **Linux**: Full support with all features (GDB or LLDB).
188+
- **macOS**:
189+
- Ruby head: Full support.
190+
- Ruby 3.4.x: Limited support (see below).
191+
- **BSD**: Should work similar to Linux (untested).
192+
193+
### macOS + Ruby 3.4.x Limitation
194+
195+
On macOS with LLDB and Ruby <= 3.4.x, some commands including `rb-fiber-scan-heap` will not work due to a `dsymutil` bug that drops `struct RTypedData` from debug symbols. This appears fixed in `ruby-head`.
196+
197+
**Workarounds:**
198+
- Use Ruby head: `ruby-install ruby-head -- CFLAGS="-g -O0"`
199+
- Use GDB instead of LLDB (works with Ruby 3.4.x)
200+
- Other commands like `rb-object-print`, `rb-stack-trace`, `rb-context` work fine

guides/getting-started/readme.md

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,47 +15,47 @@ $ gem install toolbox
1515
Install the GDB extensions (automatically adds to `~/.gdbinit`):
1616

1717
~~~ bash
18-
$ bake toolbox:gdb:install
18+
$ bake -g toolbox toolbox:gdb:install
1919
~~~
2020

2121
This adds a single line to your `~/.gdbinit` that sources the extensions from the gem's data directory. The extensions will then load automatically every time you start GDB.
2222

2323
To install to a custom `.gdbinit` location:
2424

2525
~~~ bash
26-
$ bake toolbox:gdb:install gdbinit=/path/to/custom/gdbinit
26+
$ bake -g toolbox toolbox:gdb:install gdbinit=/path/to/custom/gdbinit
2727
~~~
2828

2929
### Installing LLDB Extensions
3030

3131
Install the LLDB extensions (automatically adds to `~/.lldbinit`):
3232

3333
~~~ bash
34-
$ bake toolbox:lldb:install
34+
$ bake -g toolbox toolbox:lldb:install
3535
~~~
3636

3737
This adds a command script import line to your `~/.lldbinit` that loads the extensions from the gem's data directory. The extensions will then load automatically every time you start LLDB.
3838

3939
To install to a custom `.lldbinit` location:
4040

4141
~~~ bash
42-
$ bake toolbox:lldb:install lldbinit=/path/to/custom/lldbinit
42+
$ bake -g toolbox toolbox:lldb:install lldbinit=/path/to/custom/lldbinit
4343
~~~
4444

4545
### Verifying Installation
4646

4747
Check GDB installation status:
4848

4949
~~~ bash
50-
$ bake toolbox:gdb:info
50+
$ bake -g toolbox toolbox:gdb:info
5151
Ruby Toolbox GDB Extensions v0.1.0
5252
Status: ✓ Installed
5353
~~~
5454

5555
Check LLDB installation status:
5656

5757
~~~ bash
58-
$ bake toolbox:lldb:info
58+
$ bake -g toolbox toolbox:lldb:info
5959
Ruby Toolbox LLDB Extensions v0.1.0
6060
Status: ✓ Installed
6161
~~~
@@ -72,16 +72,16 @@ Recursively print Ruby hash and array structures...
7272
To remove the GDB extensions:
7373

7474
~~~ bash
75-
$ bake toolbox:gdb:uninstall
75+
$ bake -g toolbox toolbox:gdb:uninstall
7676
~~~
7777

7878
To remove the LLDB extensions:
7979

8080
~~~ bash
81-
$ bake toolbox:lldb:uninstall
81+
$ bake -g toolbox toolbox:lldb:uninstall
8282
~~~
8383

84-
This removes the source line from your `~/.gdbinit`.
84+
This removes the source line from your `~/.gdbinit` or `~/.lldbinit`.
8585

8686
## Core Concepts
8787

@@ -176,3 +176,25 @@ Ruby hashes and arrays can contain nested structures:
176176
~~~
177177

178178
The `--depth` flag controls how deep to recurse into nested objects.
179+
180+
## Requirements
181+
182+
- GDB with Python support (GDB 7.0+) or LLDB with Python support.
183+
- Ruby 3.3+ recommended.
184+
185+
### Platform Support
186+
187+
- **Linux**: Full support with all features (GDB or LLDB).
188+
- **macOS**:
189+
- Ruby head: Full support.
190+
- Ruby 3.4.x: Limited support (see below).
191+
- **BSD**: Should work similar to Linux (untested).
192+
193+
### macOS + Ruby 3.4.x Limitation
194+
195+
On macOS with LLDB and Ruby <= 3.4.x, some commands including `rb-fiber-scan-heap` will not work due to a `dsymutil` bug that drops `struct RTypedData` from debug symbols. This appears fixed in `ruby-head`.
196+
197+
**Workarounds:**
198+
- Use Ruby head: `ruby-install ruby-head -- CFLAGS="-g -O0"`
199+
- Use GDB instead of LLDB (works with Ruby 3.4.x)
200+
- Other commands like `rb-object-print`, `rb-stack-trace`, `rb-context` work fine

0 commit comments

Comments
 (0)