2013-04-24 1 views
2

레일에 스트레이크 흔적이 있습니다. 처음에는 오류를보고 의미하는 오류를 인쇄하고, 용어를 위로 스크롤하십시오 오류가 무엇인지 확인하십시오.화면에 역순으로 뒤틀림/거치대/오류가있는 레일에 루비를 인쇄하십시오.

오류 & stracktrace를 역순으로 인쇄 할 수있는 방법이 있으므로 스크롤하지 않고도 오류를 볼 수 있습니다. 예를 들면 :

 /activesupport/lib/active_support/dependencies.rb:228:in `require': cannot load such file -- pry (LoadError) 
     from /activesupport/lib/active_support/dependencies.rb:228:in `block in require' 
     from /activesupport/lib/active_support/dependencies.rb:213:in `load_dependency' 
     from /activesupport/lib/active_support/dependencies.rb:228:in `require' 
     from /actionpack/lib/action_dispatch/routing/mapper.rb:307:in `normalize_path' 
     from /actionpack/lib/action_dispatch/routing/mapper.rb:79:in `normalize_path!' 
     from /actionpack/lib/action_dispatch/routing/mapper.rb:65:in `initialize' 
     from /actionpack/lib/action_dispatch/routing/mapper.rb:1429:in `new' 
     from /actionpack/lib/action_dispatch/routing/mapper.rb:1429:in `add_route' 
     from /actionpack/lib/action_dispatch/routing/mapper.rb:1408:in `decomposed_match' 
     from /actionpack/lib/action_dispatch/routing/mapper.rb:1389:in `block in match' 
     from /actionpack/lib/action_dispatch/routing/mapper.rb:1380:in `each' 
     from /actionpack/lib/action_dispatch/routing/mapper.rb:1380:in `match' 
     from /actionpack/lib/action_dispatch/routing/mapper.rb:502:in `mount' 
     from /ruby-2.0.0-p0/bundler/gems/sprockets-rails-bbf755e8b3aa/lib/sprockets/railtie.rb:125:in `block (2 levels) in <class:Railtie>' 
     from /actionpack/lib/action_dispatch/routing/route_set.rb:315:in `instance_exec' 
     from /actionpack/lib/action_dispatch/routing/route_set.rb:315:in `eval_block' 
     from /actionpack/lib/action_dispatch/routing/route_set.rb:330:in `block in clear!' 
     from /actionpack/lib/action_dispatch/routing/route_set.rb:330:in `each' 
     from /actionpack/lib/action_dispatch/routing/route_set.rb:330:in `clear!' 
     from /railties/lib/rails/application/routes_reloader.rb:35:in `block in clear!' 
     from /railties/lib/rails/application/routes_reloader.rb:33:in `each' 
     from /railties/lib/rails/application/routes_reloader.rb:33:in `clear!' 
     from /railties/lib/rails/application/routes_reloader.rb:15:in `reload!' 
     from /railties/lib/rails/application/routes_reloader.rb:26:in `block in updater' 
     from /activesupport/lib/active_support/file_update_checker.rb:75:in `call' 
     from /activesupport/lib/active_support/file_update_checker.rb:75:in `execute' 
     from /railties/lib/rails/application/routes_reloader.rb:27:in `updater' 
     from /railties/lib/rails/application/routes_reloader.rb:7:in `execute_if_updated' 
     from /railties/lib/rails/application/finisher.rb:69:in `block in <module:Finisher>' 
     from /railties/lib/rails/initializable.rb:30:in `instance_exec' 
     from /railties/lib/rails/initializable.rb:30:in `run' 
     from /railties/lib/rails/initializable.rb:55:in `block in run_initializers' 
     from ruby-2.0.0-p0/lib/ruby/2.0.0/tsort.rb:150:in `block in tsort_each' 
     from ruby-2.0.0-p0/lib/ruby/2.0.0/tsort.rb:183:in `block (2 levels) in each_strongly_connected_component' 
     from ruby-2.0.0-p0/lib/ruby/2.0.0/tsort.rb:219:in `each_strongly_connected_component_from' 
     from ruby-2.0.0-p0/lib/ruby/2.0.0/tsort.rb:182:in `block in each_strongly_connected_component' 
     from ruby-2.0.0-p0/lib/ruby/2.0.0/tsort.rb:180:in `each' 
     from ruby-2.0.0-p0/lib/ruby/2.0.0/tsort.rb:180:in `each_strongly_connected_component' 
     from ruby-2.0.0-p0/lib/ruby/2.0.0/tsort.rb:148:in `tsort_each' 
     from /railties/lib/rails/initializable.rb:54:in `run_initializers' 
     from /railties/lib/rails/application.rb:214:in `initialize!' 
     from /railties/lib/rails/railtie/configurable.rb:30:in `method_missing' 
     from /demo/config/environment.rb:5:in `<top (required)>' 
     from /demo/config.ru:3:in `require' 
     from /demo/config.ru:3:in `block in <main>' 
     from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval' 
     from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `initialize' 
     from /demo/config.ru:in `new' 
     from /demo/config.ru:in `<main>' 
     from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/builder.rb:49:in `eval' 
     from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/builder.rb:49:in `new_from_string' 
     from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/builder.rb:40:in `parse_file' 
     from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/server.rb:277:in `build_app_and_options_from_config' 
     from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/server.rb:199:in `app' 
     from /railties/lib/rails/commands/server.rb:48:in `app' 
     from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/server.rb:314:in `wrapped_app' 
     from /railties/lib/rails/commands/server.rb:75:in `start' 
     from /railties/lib/rails/commands.rb:80:in `block in <top (required)>' 
     from /railties/lib/rails/commands.rb:75:in `tap' 
     from /railties/lib/rails/commands.rb:75:in `<top (required)>' 
     from bin/rails:4:in `require' 
     from bin/rails:4:in `<main>' 

내가 역순으로이 같은 stracktrace을 얻을 수있는 방법이 있나요, 그래서 난 내 터미널 매번 스크롤 할 필요가 없습니다 :

이 레일/루비는 현재 stracktraces를 인쇄한다 나는 오류가 발생합니다. 이와 비슷한 것 :

from bin/rails:4:in `<main>' 
    from bin/rails:4:in `require' 
    from /railties/lib/rails/commands.rb:75:in `<top (required)>' 
    from /railties/lib/rails/commands.rb:75:in `tap' 
    from /railties/lib/rails/commands.rb:80:in `block in <top (required)>' 
    from /railties/lib/rails/commands/server.rb:75:in `start' 
    from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/server.rb:314:in `wrapped_app' 
    from /railties/lib/rails/commands/server.rb:48:in `app' 
    from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/server.rb:199:in `app' 
    from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/server.rb:277:in `build_app_and_options_from_config' 
    from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/builder.rb:40:in `parse_file' 
    from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/builder.rb:49:in `new_from_string' 
    from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/builder.rb:49:in `eval' 
    from /demo/config.ru:in `<main>' 
    from /demo/config.ru:in `new' 
    from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `initialize' 
    from /ruby-2.0.0-p0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval' 
    from /demo/config.ru:3:in `block in <main>' 
    from /demo/config.ru:3:in `require' 
    from /demo/config/environment.rb:5:in `<top (required)>' 
    from /railties/lib/rails/railtie/configurable.rb:30:in `method_missing' 
    from /railties/lib/rails/application.rb:214:in `initialize!' 
    from /railties/lib/rails/initializable.rb:54:in `run_initializers' 
    from ruby-2.0.0-p0/lib/ruby/2.0.0/tsort.rb:148:in `tsort_each' 
    from ruby-2.0.0-p0/lib/ruby/2.0.0/tsort.rb:180:in `each_strongly_connected_component' 
    from ruby-2.0.0-p0/lib/ruby/2.0.0/tsort.rb:180:in `each' 
    from ruby-2.0.0-p0/lib/ruby/2.0.0/tsort.rb:182:in `block in each_strongly_connected_component' 
    from ruby-2.0.0-p0/lib/ruby/2.0.0/tsort.rb:219:in `each_strongly_connected_component_from' 
    from ruby-2.0.0-p0/lib/ruby/2.0.0/tsort.rb:183:in `block (2 levels) in each_strongly_connected_component' 
    from ruby-2.0.0-p0/lib/ruby/2.0.0/tsort.rb:150:in `block in tsort_each' 
    from /railties/lib/rails/initializable.rb:55:in `block in run_initializers' 
    from /railties/lib/rails/initializable.rb:30:in `run' 
    from /railties/lib/rails/initializable.rb:30:in `instance_exec' 
    from /railties/lib/rails/application/finisher.rb:69:in `block in <module:Finisher>' 
    from /railties/lib/rails/application/routes_reloader.rb:7:in `execute_if_updated' 
    from /railties/lib/rails/application/routes_reloader.rb:27:in `updater' 
    from /activesupport/lib/active_support/file_update_checker.rb:75:in `execute' 
    from /activesupport/lib/active_support/file_update_checker.rb:75:in `call' 
    from /railties/lib/rails/application/routes_reloader.rb:26:in `block in updater' 
    from /railties/lib/rails/application/routes_reloader.rb:15:in `reload!' 
    from /railties/lib/rails/application/routes_reloader.rb:33:in `clear!' 
    from /railties/lib/rails/application/routes_reloader.rb:33:in `each' 
    from /railties/lib/rails/application/routes_reloader.rb:35:in `block in clear!' 
    from /actionpack/lib/action_dispatch/routing/route_set.rb:330:in `clear!' 
    from /actionpack/lib/action_dispatch/routing/route_set.rb:330:in `each' 
    from /actionpack/lib/action_dispatch/routing/route_set.rb:330:in `block in clear!' 
    from /actionpack/lib/action_dispatch/routing/route_set.rb:315:in `eval_block' 
    from /actionpack/lib/action_dispatch/routing/route_set.rb:315:in `instance_exec' 
    from /ruby-2.0.0-p0/bundler/gems/sprockets-rails-bbf755e8b3aa/lib/sprockets/railtie.rb:125:in `block (2 levels) in <class:Railtie>' 
    from /actionpack/lib/action_dispatch/routing/mapper.rb:502:in `mount' 
    from /actionpack/lib/action_dispatch/routing/mapper.rb:1380:in `match' 
    from /actionpack/lib/action_dispatch/routing/mapper.rb:1380:in `each' 
    from /actionpack/lib/action_dispatch/routing/mapper.rb:1389:in `block in match' 
    from /actionpack/lib/action_dispatch/routing/mapper.rb:1408:in `decomposed_match' 
    from /actionpack/lib/action_dispatch/routing/mapper.rb:1429:in `add_route' 
    from /actionpack/lib/action_dispatch/routing/mapper.rb:1429:in `new' 
    from /actionpack/lib/action_dispatch/routing/mapper.rb:65:in `initialize' 
    from /actionpack/lib/action_dispatch/routing/mapper.rb:79:in `normalize_path!' 
    from /actionpack/lib/action_dispatch/routing/mapper.rb:307:in `normalize_path' 
    from /activesupport/lib/active_support/dependencies.rb:228:in `require' 
    from /activesupport/lib/active_support/dependencies.rb:213:in `load_dependency' 
    from /activesupport/lib/active_support/dependencies.rb:228:in `block in require' 
    /activesupport/lib/active_support/dependencies.rb:228:in `require': cannot load such file -- pry (LoadError) 

가능한가요?

+0

'예외 # 백 트레이스'가 '스택 레벨이 너무 높음'및 '불법 하드웨어 명령어'를 무시합니다. – Leventix

+0

@ 레벤 텍스 (Leventix) 당신은 아마도 'Exception'에서 구출하거나 monkeypatch하고 싶지 않을 것입니다. 대신에 'StandardError'에서 구출하고 싶을 것입니다. 그 이유는 다음과 같습니다. http://stackoverflow.com/questions/10048173/why-is-it-bad-style-to-rescue-exception-e-in-ruby – Andrew

답변

2

이렇게하는 방법에는 여러 가지가 있습니다.

당신이 IRB에있어, 나 같은 디버거 일 경우 :

caller.reverse 

당신이 원하는 당신을 줄 것이다. 대안은 너무

begin 
    all the code 
rescue StandardError => e 
    puts e.backtrace.reverse 
end 

처럼 모든 코드를 포장 그리고 마지막으로 당신이 있지만, 핵심 모듈을 확장하는 것은 전혀 좋은 생각이 아니다 caller.reverse 인쇄 예외에 대한 역 추적을 확장 할 수있다.

+0

아마 구조에서 구출하고 싶지 않고 '예외 '. 대신에 'StandardError'에서 구출하고 싶을 것입니다. 이유는 다음과 같습니다. http://stackoverflow.com/questions/10048173/why-is-it-bad-style-to-rescue-exception-e-in-ruby – Andrew

관련 문제