ml.ruby-lang.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

ruby-core

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
ruby-core@ml.ruby-lang.org

August 2023

  • 2 participants
  • 212 discussions
[ruby-core:113096] [Ruby master Feature#19572] Proposal: New TracePoint event for rescued exceptions
by st0012 (Stan Lo) 02 Aug '23

02 Aug '23
Issue #19572 has been reported by st0012 (Stan Lo). ---------------------------------------- Feature #19572: Proposal: New TracePoint event for rescued exceptions https://bugs.ruby-lang.org/issues/19572 * Author: st0012 (Stan Lo) * Status: Open * Priority: Normal ---------------------------------------- **Summary** Support a new `rescue` event type in TracePoint. When the event is triggered, `TracePoint#rescued_exception` can be used to access the exception. **Reason** Currently, TracePoint supports `raise` events, which can be helpful for debugging by showing which exception occurs at which location. By adding a `rescue` event type, we can improve the developer's debugging experience by making it easier to check where an exception is rescued. Currently, the most effective way to check where an exception is rescued involves setting a breakpoint at the exception's raised location and stepping through the code to see whether the debugger stops inside a rescue block. However, this can be a tedious process, especially in large applications with deep call stacks. By using a TracePoint event for rescue, developers can easily track exceptions as they are rescued by adding a few lines of code: ``` TracePoint.trace(:rescue) do |tp| puts "Exception rescued: #{tp.rescued_exception} at #{tp.path}:#{tp.lineno}" end ``` This new TracePoint event will also improve the `ruby/debug`'s [`ExceptionTracer`](https://github.com/ruby/debug/blob/master/lib/debug/tracer.rb#L150-L166) and provide users with a better debugging experience. -- https://bugs.ruby-lang.org/
4 4
0 0
[ruby-core:114333] [Ruby master Bug#19795] attr_accessor leading to nil values for re-assignment
by francktrouillez (Franck Trouillez) 02 Aug '23

02 Aug '23
Issue #19795 has been reported by francktrouillez (Franck Trouillez). ---------------------------------------- Bug #19795: attr_accessor leading to nil values for re-assignment https://bugs.ruby-lang.org/issues/19795 * Author: francktrouillez (Franck Trouillez) * Status: Open * Priority: Normal * ruby -v: ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- ### Steps to reproduce: - Create a class with an `attr_accessor` for an instance variable - Create an instance method that reassign this variable using the current value stored in the variable - Show that the variable is set to nil during the evaluation Code snippet: ``` ruby # attr_accessor_nil.rb class A attr_accessor :a def initialize @a = 1 end def my_method puts "a is '#{a.inspect}' of class '#{a.class}'" a += 1 if a.positive? # use an integer method end end instance = A.new instance.my_method # output: # # a is '1' of class 'Integer' # attr_accessor_nil.rb:12:in `my_method': undefined method `positive?' for nil:NilClass (NoMethodError) # # a += 1 if a.positive? # use an integer method # ^^^^^^^^^^ # from attr_accessor_nil.rb:17:in `<main>' ``` ### Expected behavior `a += 1` should lead to `a` being equal to `1` at the end of the assignment, because `a` was storing `0` previously, as shown by the `puts`. Am I being wrong expecting this result? ### Actual behavior `a += 1` raises an error about `a` being `nil` in the evaluation. ### Further investigation I checked if it was coming from the "instance variable", or about the "attr_accessor" by running the following snippet: Code snippet: ```ruby # attr_accessor_nil.rb class A attr_accessor :a def initialize @a = 0 end def my_method puts "a is '#{a.inspect}' of class '#{a.class}'" @a += 1 # use the instance variable directly, instead of the accessor end end instance = A.new instance.my_method # output: # # a is '1' of class 'Integer' ``` This snippet runs just fine, and no error is raised. ### System configuration Ruby version : 3.2.2 -- https://bugs.ruby-lang.org/
2 3
0 0
  • ← Newer
  • 1
  • ...
  • 19
  • 20
  • 21
  • 22
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.