ruby_ext_backtrace 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
    
        data/README.md
    CHANGED
    
    | @@ -26,14 +26,17 @@ require 'pp' | |
| 26 26 | 
             
            require 'ruby_ext_backtrace'
         | 
| 27 27 |  | 
| 28 28 | 
             
            def some_method2 param
         | 
| 29 | 
            -
               | 
| 29 | 
            +
              c1 = caller_ext(0); c2 = caller(0)
         | 
| 30 | 
            +
              pp c1
         | 
| 31 | 
            +
              puts "\n#Original caller for comparison:"
         | 
| 32 | 
            +
              pp c2
         | 
| 30 33 | 
             
            end
         | 
| 31 34 |  | 
| 32 | 
            -
            def some_method param1, param2=nil, &blk
         | 
| 35 | 
            +
            def some_method param1, param2=nil, *splat, &blk
         | 
| 33 36 | 
             
              yield "block_param0", "block_param1"
         | 
| 34 37 | 
             
            end
         | 
| 35 38 |  | 
| 36 | 
            -
            some_method(1111){|bp1,bp2|
         | 
| 39 | 
            +
            some_method(1111, nil, 1, 2, 3){|bp1,bp2|
         | 
| 37 40 | 
             
              some_method2 "some_method2_param"
         | 
| 38 41 | 
             
            }
         | 
| 39 42 | 
             
            ```
         | 
| @@ -42,36 +45,32 @@ this outputs: | |
| 42 45 |  | 
| 43 46 | 
             
            ```ruby
         | 
| 44 47 |  | 
| 45 | 
            -
            [" | 
| 46 | 
            -
             "./test.rb:17:in `some_method2'",
         | 
| 47 | 
            -
             "./test.rb:25:in `block in <main>'",
         | 
| 48 | 
            -
             "./test.rb:21:in `some_method'",
         | 
| 49 | 
            -
             "./test.rb:24:in `<main>'"]
         | 
| 50 | 
            -
             | 
| 51 | 
            -
            [{:file=>"./test.rb",
         | 
| 48 | 
            +
            [{:file=>"test.rb",
         | 
| 52 49 | 
             
              :line=>10,
         | 
| 53 | 
            -
              :method=>"meth",
         | 
| 54 | 
            -
              :argc=>1,
         | 
| 55 | 
            -
              0=>"default_meth_param"},
         | 
| 56 | 
            -
             {:file=>"./test.rb",
         | 
| 57 | 
            -
              :line=>17,
         | 
| 58 50 | 
             
              :method=>"some_method2",
         | 
| 59 51 | 
             
              :argc=>1,
         | 
| 60 52 | 
             
              0=>"some_method2_param"},
         | 
| 61 | 
            -
             {:file=>" | 
| 62 | 
            -
              :line=> | 
| 53 | 
            +
             {:file=>"test.rb",
         | 
| 54 | 
            +
              :line=>21,
         | 
| 63 55 | 
             
              :method=>"block in <main>",
         | 
| 64 56 | 
             
              :argc=>2,
         | 
| 65 57 | 
             
              0=>"block_param0",
         | 
| 66 58 | 
             
              1=>"block_param1"},
         | 
| 67 | 
            -
             {:file=>" | 
| 68 | 
            -
              :line=> | 
| 59 | 
            +
             {:file=>"test.rb",
         | 
| 60 | 
            +
              :line=>17,
         | 
| 69 61 | 
             
              :method=>"some_method",
         | 
| 70 | 
            -
              :argc=> | 
| 62 | 
            +
              :argc=>4,
         | 
| 71 63 | 
             
              0=>1111,
         | 
| 72 64 | 
             
              1=>nil,
         | 
| 73 | 
            -
              2 | 
| 74 | 
            -
             | 
| 65 | 
            +
              2=>[1, 2, 3],
         | 
| 66 | 
            +
              3=>#<Proc:0x007fc87c053290@test.rb:20>},
         | 
| 67 | 
            +
             {:file=>"test.rb", :line=>20, :method=>"<main>", :argc=>0}]
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            #Original caller for comparison:
         | 
| 70 | 
            +
            ["test.rb:10:in `some_method2'",
         | 
| 71 | 
            +
             "test.rb:21:in `block in <main>'",
         | 
| 72 | 
            +
             "test.rb:17:in `some_method'",
         | 
| 73 | 
            +
             "test.rb:20:in `<main>'"]
         | 
| 75 74 | 
             
            ```
         | 
| 76 75 |  | 
| 77 76 | 
             
            Note that fetching parameters for CFUNCs with variable parameters (argc<0) is not supported.
         | 
| @@ -5,7 +5,13 @@ require 'mkmf' | |
| 5 5 | 
             
            require 'debugger/ruby_core_source'
         | 
| 6 6 |  | 
| 7 7 | 
             
            hdrs = proc {
         | 
| 8 | 
            -
              have_header("vm_core.h") # and have_header("iseq.h")
         | 
| 8 | 
            +
              res = have_header("vm_core.h") # and have_header("iseq.h")
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              if RUBY_VERSION=='1.9.2'
         | 
| 11 | 
            +
                # on 1.9.3 it fails to link in runtime, but still checks to be ok
         | 
| 12 | 
            +
                have_var('ruby_current_thread', 'vm_core.h')
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
              res
         | 
| 9 15 | 
             
            }
         | 
| 10 16 |  | 
| 11 17 | 
             
            dir_config("ruby") # allow user to pass in non-standard core include directory
         | 
| @@ -10,6 +10,13 @@ | |
| 10 10 | 
             
            #error Need RubyVM, use another ruby
         | 
| 11 11 | 
             
            #endif
         | 
| 12 12 |  | 
| 13 | 
            +
            #ifdef HAVE_RUBY_CURRENT_THREAD
         | 
| 14 | 
            +
            extern VALUE ruby_engine_name;
         | 
| 15 | 
            +
            #else
         | 
| 16 | 
            +
            #define ruby_engine_name Qnil
         | 
| 17 | 
            +
            #define ruby_current_thread ((rb_thread_t *)RTYPEDDATA_DATA(rb_thread_current()))
         | 
| 18 | 
            +
            #endif
         | 
| 19 | 
            +
             | 
| 13 20 | 
             
            typedef int (rb_backtrace_iter_ext_func)(void *arg, VALUE file, int line, VALUE method_name, int argc, VALUE* argv);
         | 
| 14 21 |  | 
| 15 22 | 
             
            static int
         | 
| @@ -49,7 +56,7 @@ vm_backtrace_each_ext(rb_thread_t *th, int lev, void (*init)(void *), rb_backtra | |
| 49 56 | 
             
                } else
         | 
| 50 57 | 
             
                  if (RUBYVM_CFUNC_FRAME_P(cfp)) {
         | 
| 51 58 | 
             
                    ID id = cfp->me->def? cfp->me->def->original_id : cfp->me->called_id;
         | 
| 52 | 
            -
             | 
| 59 | 
            +
             | 
| 53 60 | 
             
                    if (NIL_P(file)) file = ruby_engine_name;
         | 
| 54 61 |  | 
| 55 62 | 
             
                    if (id != ID_ALLOCATOR){
         | 
| @@ -7,13 +7,16 @@ require 'pp' | |
| 7 7 | 
             
            require 'ruby_ext_backtrace'
         | 
| 8 8 |  | 
| 9 9 | 
             
            def some_method2 param
         | 
| 10 | 
            -
               | 
| 10 | 
            +
              c1 = caller_ext(0); c2 = caller(0)
         | 
| 11 | 
            +
              pp c1
         | 
| 12 | 
            +
              puts "\n #Original caller for comparison:"
         | 
| 13 | 
            +
              pp c2
         | 
| 11 14 | 
             
            end
         | 
| 12 15 |  | 
| 13 | 
            -
            def some_method param1, param2=nil, &blk
         | 
| 16 | 
            +
            def some_method param1, param2=nil, *splat, &blk
         | 
| 14 17 | 
             
              yield "block_param0", "block_param1"
         | 
| 15 18 | 
             
            end
         | 
| 16 19 |  | 
| 17 | 
            -
            some_method(1111){|bp1,bp2|
         | 
| 20 | 
            +
            some_method(1111, nil, 1, 2, 3){|bp1,bp2|
         | 
| 18 21 | 
             
              some_method2 "some_method2_param"
         | 
| 19 | 
            -
            }
         | 
| 22 | 
            +
            }
         | 
    
        data/ruby_ext_backtrace.gemspec
    CHANGED
    
    | @@ -10,7 +10,7 @@ Gem::Specification.new do |gem| | |
| 10 10 | 
             
              gem.email         = ["vasilyfedoseyev@gmail.com"]
         | 
| 11 11 | 
             
              gem.description   = %q{Extended backtrace for ruby}
         | 
| 12 12 | 
             
              gem.summary       = %q{have you ever wanted to see method parameters in backtrace?}
         | 
| 13 | 
            -
              gem.homepage      = ""
         | 
| 13 | 
            +
              gem.homepage      = "https://github.com/Vasfed/ruby_ext_backtrace"
         | 
| 14 14 |  | 
| 15 15 | 
             
              gem.files         = `git ls-files`.split($/)
         | 
| 16 16 | 
             
              gem.executables   = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: ruby_ext_backtrace
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.2
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2012- | 
| 12 | 
            +
            date: 2012-10-02 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: debugger-ruby_core_source
         | 
| @@ -62,7 +62,7 @@ files: | |
| 62 62 | 
             
            - lib/ruby_ext_backtrace.rb
         | 
| 63 63 | 
             
            - lib/ruby_ext_backtrace/version.rb
         | 
| 64 64 | 
             
            - ruby_ext_backtrace.gemspec
         | 
| 65 | 
            -
            homepage:  | 
| 65 | 
            +
            homepage: https://github.com/Vasfed/ruby_ext_backtrace
         | 
| 66 66 | 
             
            licenses: []
         | 
| 67 67 | 
             
            post_install_message: 
         | 
| 68 68 | 
             
            rdoc_options: []
         | 
| @@ -76,7 +76,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 76 76 | 
             
                  version: '0'
         | 
| 77 77 | 
             
                  segments:
         | 
| 78 78 | 
             
                  - 0
         | 
| 79 | 
            -
                  hash: - | 
| 79 | 
            +
                  hash: -543521818031646013
         | 
| 80 80 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 81 81 | 
             
              none: false
         | 
| 82 82 | 
             
              requirements:
         | 
| @@ -85,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 85 85 | 
             
                  version: '0'
         | 
| 86 86 | 
             
                  segments:
         | 
| 87 87 | 
             
                  - 0
         | 
| 88 | 
            -
                  hash: - | 
| 88 | 
            +
                  hash: -543521818031646013
         | 
| 89 89 | 
             
            requirements: []
         | 
| 90 90 | 
             
            rubyforge_project: 
         | 
| 91 91 | 
             
            rubygems_version: 1.8.24
         |