gdbruby.rb¶ ↑
Overview¶ ↑
gdbruby.rb can output these information with live process or core.
-
environment variables
-
C stacktrace
-
Ruby backtrace
This is Ruby port of gdbperl.pl made by Akira Higuchi.
Precondition¶ ↑
-
Your Ruby executable must have debug symbol.
-
on Linux.
Usage¶ ↑
With live process(process id: 24113)
$ gdbruby.rb 24113
With core file. You have to specify path of ruby executable.
$ gdbruby.rb core.24113 `rbenv which ruby`
You can get core file with gcore script or execute gcore command on gdb like below.
$ gdb (gdb) attach 24113 (gdb) gcore core.24113 (gdb) detach
Options¶ ↑
You can specify options. 0 is interprited as false.
$ gdbruby.rb 24113 verbose_gdb=1 c_trace=1
-
verbose_gdb: Show request and response to/from gdb(default: false)
-
env: Show environment variables(default: true)
-
c_trace: Show C stacktrace(default:true)
ToDo¶ ↑
-
Print all Ruby threads
-
Print arguments on Ruby backtrace
-
Speeding up Ruby’s type check
-
List Ruby objects
-
Check memory usage
FAQ¶ ↑
Why don’t you call functions such like rb_vm_get_sourceline()¶ ↑
If you use gdbruby.rb with live process, gdb can call these functions. But if you use gdbruby.rb with core file, gdb cannot call c functions. So I re-implement these functions.
Which version does it support?¶ ↑
Ruby 2.0.0 only.