Skip to content

Tracing :call with TracePoint (and --debug flag) makes kwargs unusable #8688

@mauricioszabo

Description

@mauricioszabo
  • JRuby version: jruby 9.4.12.0 (3.1.4) 2025-02-11 f4ab750 OpenJDK 64-Bit Server VM 20.0.2+9-78 on 20.0.2+9-78 +jit [x86_64-linux]
  • Operating system and platform: Ubuntu 22.04, x86_64

Hi there:

With a clean JRuby installation (no gem, nothing), tracing code with :call makes anything that uses kwargs not work. This small fragment of code explains the problem:

t = TracePoint.new(:call) do |tp|
end
t.enable

def some_method(a, b: true)
  p [:a, a, b]
end

some_method(10, b: 20)

Saving that to foo.rb for example, and running with jruby foo.rb works, but running with jruby --debug foo.rb doesn't. If I comment the lines 1-3, then it works again, even with the --debug flag.

Expected Behavior

Both with --debug and without, the result should be [:a, 10, 20] to be printed to the screen.

Actual Behavior

With --debug flag, it crashes with:

ArgumentError: wrong number of arguments (given 2, expected 1)
  some_method at /tmp/foo.rb:6
       <main> at /tmp/foo.rb:9

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions