[#55222] [ruby-trunk - Feature #8468][Feedback] Remove $SAFE — "shugo (Shugo Maeda)" <redmine@...>

20 messages 2013/06/01

[#55260] [ruby-trunk - Feature #8478][Open] The hash returned by Enumerable#group_by should have an empty array for its default value — "phiggins (Pete Higgins)" <pete@...>

8 messages 2013/06/02

[#55276] Re: [ruby-changes:28951] zzak:r41003 (trunk): * process.c: Improve Process::exec documentation — Tanaka Akira <akr@...>

2013/5/31 zzak <ko1@atdot.net>:

9 messages 2013/06/03

[#55306] [ruby-trunk - Feature #8490][Open] Bring ActiveSupport Enumerable#index_by to core — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

12 messages 2013/06/04

[#55330] [ruby-trunk - Feature #8499][Assigned] Importing Hash#slice, Hash#slice!, Hash#except, and Hash#except! from ActiveSupport — "mrkn (Kenta Murata)" <muraken@...>

30 messages 2013/06/06

[#55391] [ruby-trunk - Bug #8507][Open] Keyword splat does not convert arg to Hash — "stephencelis (Stephen Celis)" <stephen.celis@...>

16 messages 2013/06/09

[#55393] [ruby-trunk - Bug #8508][Open] Invalid byte sequence in UTF-8 (ArgumentError) in win32/registry.rb — "thasmo (Thomas Deinhamer)" <thasmo@...>

11 messages 2013/06/09

[#55528] [ruby-trunk - Bug #8538][Open] c method not pushed into the callstack when called, but popped when returned — deivid (David Rodríguez) <deivid.rodriguez@...>

9 messages 2013/06/17

[#55557] [ruby-trunk - misc #8543][Open] rb_iseq_load — "alvoskov (Alexey Voskov)" <alvoskov@...>

47 messages 2013/06/19

[#55558] [ruby-trunk - Feature #8544][Open] OpenURI should open 'file://' URIs — "silasdavis (Silas Davis)" <ruby-lang@...>

12 messages 2013/06/19

[#55580] [CommonRuby - Feature #8556][Open] MutexedDelegator as a trivial way to make an object thread-safe — "headius (Charles Nutter)" <headius@...>

19 messages 2013/06/21

[#55596] [ruby-trunk - Feature #8563][Open] Instance variable arguments — "sawa (Tsuyoshi Sawada)" <sawadatsuyoshi@...>

18 messages 2013/06/22

[#55638] [CommonRuby - Feature #8568][Open] Introduce RbConfig value for native word size, to avoid Fixnum#size use — "headius (Charles Nutter)" <headius@...>

18 messages 2013/06/24

[#55678] [ruby-trunk - Feature #8572][Open] Fiber should be a Enumerable — "mattn (Yasuhiro Matsumoto)" <mattn.jp@...>

13 messages 2013/06/28

[#55699] [ruby-trunk - Feature #8579][Open] Frozen string syntax — "charliesome (Charlie Somerville)" <charliesome@...>

20 messages 2013/06/29

[#55708] [ruby-trunk - Bug #8584][Assigned] Remove curses — "shugo (Shugo Maeda)" <redmine@...>

17 messages 2013/06/30

[ruby-core:55670] Re: [ruby-trunk - Bug #8538] c method not pushed into the callstack when called, but popped when returned

From: Magnus Holm <judofyr@...>
Date: 2013-06-27 09:10:22 UTC
List: ruby-core #55670
It seems like #initialize is never pushed to the stack:

  class Foo
    def initialize
      puts caller
    end
  end

  Foo.new

Result:

f.rb:8:in `new'
f.rb:8:in `<main>'



// Magnus Holm


On Thu, Jun 27, 2013 at 10:23 AM, deivid (David Rodr=C3=ADguez) <
deivid.rodriguez@gmail.com> wrote:

>
> Issue #8538 has been updated by deivid (David Rodr=C3=ADguez).
>
>
> "no replies after 10 days" reminder. This is affecting
> https://github.com/deivid-rodriguez/byebug, I can easily make it crash by
> doing:
>
>     davidr@pantani:~/Proyectos/byebug$ ruby -Ilib -rbyebug -e 'byebug;
> fail "Bang!"'
>     -e @ 1
>     (byebug) catch Exception
>     Catch exception Exception.
>     (byebug) c
>     Catchpoint at -e:1: `Bang!' (RuntimeError)
>             from /home/davidr/Proyectos/byebug/lib/byebug/context.rb:44:i=
n
> `at_catchpoint'
>             from -e:1:in `<main>'
>     -e @ 1
>     (byebug) bt
>     --> #0  <main> at -e:1
>     INTERNAL ERROR!!! That frame doesn't exist!
>
> /home/davidr/Proyectos/byebug/lib/byebug/commands/frame.rb:90:in
> `frame_file'
>
> /home/davidr/Proyectos/byebug/lib/byebug/commands/frame.rb:90:in
> `print_frame'
>
> /home/davidr/Proyectos/byebug/lib/byebug/commands/frame.rb:85:in `block i=
n
> print_backtrace'
>
> /home/davidr/Proyectos/byebug/lib/byebug/commands/frame.rb:84:in `each'
>
> /home/davidr/Proyectos/byebug/lib/byebug/commands/frame.rb:84:in
> `print_backtrace'
>
> /home/davidr/Proyectos/byebug/lib/byebug/commands/frame.rb:127:in `execut=
e'
>             /home/davidr/Proyectos/byebug/lib/byebug/processor.rb:260:in
> `one_cmd'
>             /home/davidr/Proyectos/byebug/lib/byebug/processor.rb:244:in
> `block (2 levels) in process_commands'
>             /home/davidr/Proyectos/byebug/lib/byebug/processor.rb:243:in
> `each'
>             /home/davidr/Proyectos/byebug/lib/byebug/processor.rb:243:in
> `block in process_commands'
>             /home/davidr/Proyectos/byebug/lib/byebug/processor.rb:236:in
> `catch'
>             /home/davidr/Proyectos/byebug/lib/byebug/processor.rb:236:in
> `process_commands'
>             /home/davidr/Proyectos/byebug/lib/byebug/processor.rb:158:in
> `at_line'
>             (eval):5:in `block in at_line'
>             (eval):3:in `synchronize'
>             (eval):3:in `at_line'
>             /home/davidr/Proyectos/byebug/lib/byebug/context.rb:52:in
> `at_line'
>             -e:1:in `<main>'-e:1:in `<main>': Bang! (RuntimeError)
>
> When the raise event comes, byebug thinks the stack size is 2 but there's
> only one element. I think this is caused by the inconsistent behaviour
> explained above.
>
> Thanks a lot guys!
> ----------------------------------------
> Bug #8538: c method not pushed into the callstack when called, but popped
> when returned
> https://bugs.ruby-lang.org/issues/8538#change-40173
>
> Author: deivid (David Rodr=C3=ADguez)
> Status: Open
> Priority: Normal
> Assignee:
> Category:
> Target version:
> ruby -v: ruby 2.0.0p195 (2013-05-14) [i686-linux]
> Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN
>
>
> See the following example:
>
>     trace =3D TracePoint.new do |tp|
>       puts "Event: #{tp.event}, Method: #{tp.method_id}\n"
>       puts "Stack: #{caller}\n\n"
>     end
>
>     trace.enable
>
>     fail "bang!"
>
> The output shows:
>
>     Event: c_return, Method: enable
>     Stack: ["trace.rb:6:in `<main>'"]
>
>     Event: line, Method:
>     Stack: ["trace.rb:8:in `<main>'"]
>
>     Event: c_call, Method: fail
>     Stack: ["trace.rb:8:in `<main>'"]
>
>     Event: c_call, Method: new
>     Stack: ["trace.rb:8:in `fail'", "trace.rb:8:in `<main>'"]
>
>     Event: c_call, Method: initialize
>     Stack: ["trace.rb:8:in `new'", "trace.rb:8:in `fail'", "trace.rb:8:in
> `<main>'"]
>
>     Event: c_return, Method: initialize
>     Stack: ["trace.rb:8:in `new'", "trace.rb:8:in `fail'", "trace.rb:8:in
> `<main>'"]
>
>     Event: c_return, Method: new
>     Stack: ["trace.rb:8:in `fail'", "trace.rb:8:in `<main>'"]
>
>     Event: c_call, Method: backtrace
>     Stack: ["trace.rb:8:in `<main>'"]
>
>     Event: c_return, Method: backtrace
>     Stack: ["trace.rb:8:in `<main>'"]
>
>     Event: raise, Method:
>     Stack: ["trace.rb:8:in `<main>'"]
>
>     Event: c_return, Method: fail
>     Stack: ["trace.rb:8:in `<main>'"]
>
>     trace.rb:8:in `<main>': bang! (RuntimeError)
>
> It looks like the method "initialize" is not pushed into the stack when
> called, but something (the previous method call) is popped when returning
> from it.
>
> Thanks a lot.
>
>
> --
> http://bugs.ruby-lang.org/
>
>

In This Thread