From: "hsbt (Hiroshi SHIBATA)" <noreply@...> Date: 2021-11-24T05:06:20+00:00 Subject: [ruby-core:106238] [Ruby master Feature#17863] rewrite lib/debug.rb with latest API Issue #17863 has been updated by hsbt (Hiroshi SHIBATA). Assignee set to ko1 (Koichi Sasada) Status changed from Open to Closed debug.rb was replaced debug gem at https://github.com/ruby/ruby/pull/4804 ---------------------------------------- Feature #17863: rewrite lib/debug.rb with latest API https://bugs.ruby-lang.org/issues/17863#change-94858 * Author: ko1 (Koichi Sasada) * Status: Closed * Priority: Normal * Assignee: ko1 (Koichi Sasada) ---------------------------------------- I rewrite lib/debug.rb (called old debug.rb) with recent TracePoint APIs (called new debug.rb). It has several incompatibility but maybe nobody uses lib/debug.rb so there is no compatible issues. In fact I tried several features of lib/debug.rb and it doesn't work nowaday. You can see the doc on https://github.com/ruby/debug Compare with existing other debuggers, it has several advantages: * Fast: No performance penalty on non-stepping mode and non-breakpoints. * Remote debugging: Support remote debugging natively. * UNIX domain socket * TCP/IP * VSCode/DAP integration (TODO) * Extensible: application can introduce debugging support with several methods * By `rdbg` command * By loading libraries with `-r` command line option * By calling Ruby's method explicitly * Misc * Support threads (almost done) and ractors (TODO). * Support suspending and entering to the console debugging with `Ctrl-C` at most of timing. * Show parameters on backtrace command. And do not need to write it on Gemfile because it will be a default gem from Ruby 3.1. Important differences: * `require 'debug'` is only a way to enable old debug.rb, but new debug.rb can be enabled with: * require * `rdbg` command (like bybug) * `binding.bp` method like `binding.irb` * Support remote debugging * Support several options like non-stop mode and so on * old debug.rb evaluate unrecognized command as Ruby script, but new debug.rb doesn't allow this spec. * `obj.foo` will be evaluated as Ruby script on old debug.rb (and byebug) * new debug.rb shows `unknown command` because it is typo safe and extension safe. * To see the result, you need to use `p` command like `p obj.foo`. Now you can try on 2.6-master with `gem install debug --pre`. -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>