Currently ruby [at least versions 1.8.6 and greater] swallows the "middle" of backtraces if the thrown error was "SystemStackError": ex: >cat bad.rb def go go2 end def go2 go end go >ruby bad.rb bad.rb:5:in `go2': stack level too deep (SystemStackError) from bad.rb:2:in `go' from bad.rb:5:in `go2' from bad.rb:2:in `go' from bad.rb:5:in `go2' from bad.rb:2:in `go' from bad.rb:5:in `go2' from bad.rb:2:in `go' from bad.rb:5:in `go2' ... 22112 levels... from bad.rb:2:in `go' from bad.rb:5:in `go2' from bad.rb:2:in `go' from bad.rb:8 However, this has the unfortunate side effect of preventinf useful parts of the backtrace from being displayed in certain other cases, here's an example I ran into just recently: C:/dev/ruby-benchmark-suite/rails/substruct/vendor/plugins/attachment_fu_fixtures/lib/attachment_fu_fixtures.rb:53:in `include?': stack level too deep (SystemStackError) from C:/dev/ruby-benchmark-suite/rails/substruct/vendor/plugins/attachment_fu_fixtures/lib/attachment_fu_fixtures.rb:53:in `attachment_model?' from C:/dev/ruby-benchmark-suite/rails/substruct/vendor/plugins/attachment_fu_fixtures/lib/attachment_fu_fixtures.rb:10:in `insert_fixture_without_attachment' from C:/dev/ruby-benchmark-suite/rails/substruct/vendor/plugins/attachment_fu_fixtures/lib/attachment_fu_fixtures.rb:28:in `insert_fixture' from C:/dev/ruby-benchmark-suite/rails/substruct/vendor/rails/activerecord/lib/active_record/fixtures.rb:639:in `insert_fixtures' from C:/dev/ruby-benchmark-suite/rails/substruct/vendor/rails/activerecord/lib/active_record/fixtures.rb:576:in `each' from C:/dev/ruby-benchmark-suite/rails/substruct/vendor/rails/activerecord/lib/active_record/fixtures.rb:576:in `insert_fixtures' from C:/dev/ruby-benchmark-suite/rails/substruct/vendor/rails/activerecord/lib/active_record/fixtures.rb:520:in `create_fixtures' from C:/dev/ruby-benchmark-suite/rails/substruct/vendor/rails/activerecord/lib/active_record/fixtures.rb:520:in `each' ... 24 levels... from c:/ruby18/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:564:in `invoke' from ./substruct_start_and_bootstrap_if_necessary.rb:15 from bm_substruct_request_root_100x.rb:8:in `require' from bm_substruct_request_root_100x.rb:8 So my question is: What would be a better way to handle this in core [I want to submit a patch, but am unsure what would be better]. some possibilities: if $VERBOSE is set then output all levels. Have it output "100 lines" of backtrace each time--probably enough. Thoughts? -=r -- Posted via http://www.ruby-forum.com/.