Lines Matching +full:ruby +full:- +full:version
2 applications that use grpc pre-compiled binary gems.
4 An example of a pre-compiled binary gem is `grpc-1.58.0-x86_64-linux.gem`
5 (as opposed to a source-built gem like `grpc-1.58.0.gem`).
7 `grpc-native-debug` gems contain debug symbols which complement the
9 proper `grpc-native-debug` gem, one can load the correct `.dbg` symbol file to
14 grpc-ruby pre-compiled binary gems are *released with debug symbols stripped*.
18 # Using grpc-native-debug
20 ## Finding the correct grpc-native-debug gem
22 Each `grpc-native-debug` gem is *one-to-one* with a `grpc` gem. Specifically:
24 - The version of a `grpc-native-debug` gem **must match the version** of the `grpc`
27 - The ruby platform of a `grpc-native-debug` gem **must match the ruby platform** of
30 So for example, if you are debugging `grpc-1.60.1-x86_64-linux.gem`, then you
31 need to fetch `grpc-native-debug-1.60.1-x86_64-linux.gem`.
35 Each `grpc-native-debug` gem has a top-level `symbols` directory containing
39 native library for each supported *minor version* of ruby. As such,
40 `grpc-native-debug` gems have exactly one `.dbg` file for each native library
43 If you unpack a `grpc-native-debug` gem and look at the `symbols`
47 grpc-native-debug-1.60.1-x86_64-linux/symbols/grpc-1.60.1-x86_64-linux-ruby-3.0.dbg
48 grpc-native-debug-1.60.1-x86_64-linux/symbols/grpc-1.60.1-x86_64-linux-ruby-2.7.dbg
49 grpc-native-debug-1.60.1-x86_64-linux/symbols/grpc-1.60.1-x86_64-linux-ruby-3.2.dbg
50 grpc-native-debug-1.60.1-x86_64-linux/symbols/grpc-1.60.1-x86_64-linux-ruby-3.1.dbg
53 In each of these `.dbg` files, the `ruby-<major>-<minor>` portion of the string
54 indicates which ruby version it's supposed to be used with.
56 So for example, if you are debugging `grpc-1.60.1-x86_64-linux.gem` on ruby-3.0, then you
58 `grpc-native-debug-1.60.1-x86_64-linux/symbols/grpc-1.60.1-x86_64-linux-ruby-3.0.dbg`.
66 - ruby-3.0
68 - grpc-1.60.1.x86_64-linux.gem
70 At first, in gdb we might dump a grpc-ruby stack trace looking
75 #0 0x00007ffff7926e56 in epoll_wait (epfd=5, events=0x7ffff3cb4144, maxevents=100, timeout=-1) at …
76 …1 0x00007ffff383eb9e in ?? () from /home/.rvm/gems/ruby-3.0.0/gems/grpc-1.60.1-x86_64-linux/src/r…
77 …2 0x00007ffff355e002 in ?? () from /home/.rvm/gems/ruby-3.0.0/gems/grpc-1.60.1-x86_64-linux/src/r…
78 …3 0x00007ffff38466e2 in ?? () from /home/.rvm/gems/ruby-3.0.0/gems/grpc-1.60.1-x86_64-linux/src/r…
79 …4 0x00007ffff35ba2ea in ?? () from /home/.rvm/gems/ruby-3.0.0/gems/grpc-1.60.1-x86_64-linux/src/r…
80 …5 0x00007ffff34abf6b in ?? () from /home/.rvm/gems/ruby-3.0.0/gems/grpc-1.60.1-x86_64-linux/src/r…
82 …7 0x00007ffff34ab110 in ?? () from /home/.rvm/gems/ruby-3.0.0/gems/grpc-1.60.1-x86_64-linux/src/r…
85 #10 0x00007ffff7c679a6 in thread_start_func_1 (th_ptr=<optimized out>) at /home/.rvm/src/ruby-3.0.0…
92 <h3>1) Fetch the correct grpc-native-debug gem</h3>
96 gem fetch grpc-native-debug-1.60.1.x86_64-linux.gem
97 gem unpack grpc-native-debug-1.60.1.x86_64-linux.gem
100 (note again the version and platform of `grpc-native-debug` must match the `grpc` gem)
102 <h3>2) Load debug symbols (for ruby-3.0)</h3>
108 …50 0x00007ffff3a61912 Yes (*) /home/.rvm/gems/ruby-3.0.0/gems/grpc-1.60.1-x86_64-linux/src/r…
109 …730 0x00007ffff3ea60df Yes (*) /home/.rvm/gems/ruby-3.0.0/gems/google-protobuf-3.24.4-x86_64…
111 (gdb) add-symbol-file /home/grpc-native-debug-1.60.1-x86_64-linux/symbols/grpc-1.60.1-x86_64-linux-…
112 add symbol table from file "/home/grpc-native-debug-1.60.1-x86_64-linux/symbols/grpc-1.60.1-x86_64-…
115 Reading symbols from /home/grpc-native-debug-1.60.1-x86_64-linux/symbols/grpc-1.60.1-x86_64-linux-r…
123 #0 0x00007ffff7926e56 in epoll_wait (epfd=5, events=0x7ffff3cb4144, maxevents=100, timeout=-1) at …
129 #6 0x00007ffff34abf6b in run_poll_channels_loop_no_gil (arg=arg@entry=0x0) at ../../../../src/ruby…
132 #9 0x00007ffff34ab110 in run_poll_channels_loop (arg=<optimized out>) at ../../../../src/ruby/ext/…
135 #12 0x00007ffff7c679a6 in thread_start_func_1 (th_ptr=<optimized out>) at /home/.rvm/src/ruby-3.0.0…
154 First, we fetch the *source* `grpc` gem at the **exact same version** of our binary
159 gem fetch grpc-1.60.1.gem
160 gem unpack grpc-1.60.1.gem
166 (gdb) dir /home/grpc-1.60.1
167 Source directories searched: /home/grpc-1.60.1:$cdir:$cwd
194 #6 0x00007ffff34abf6b in run_poll_channels_loop_no_gil (arg=arg@entry=0x0) at ../../../../src/ruby…
195 663 ../../../../src/ruby/ext/grpc/rb_channel.c: No such file or directory.
198 A portion of the grpc-ruby native extension is built from a sub-directory:
199 `src/ruby/ext/grpc`. So we also need to add that sub-directory, to fix this:
202 (gdb) dir /home/grpc-1.60.1/src/ruby/ext/grpc
203 Source directories searched: /home/grpc-1.60.1/src/ruby/ext/grpc:/home/grpc-1.60.1:$cdir:$cwd
226 grpc-native-debug currently only supports:
228 - ruby platforms: `x86_64-linux` and `x86-linux`
230 - grpc >= 1.60.0