On Jun 20, 2006, at 0:18, lists wrote: > $ cat the_test.rb > require './lib' > > begin > MyClass.new.throws_an_exception > rescue => e > puts e > end > $ ruby the_test.rb > undefined method `non_existent_method' for #<MyClass:0x2560c> > > I don't get the rest of the backtrace (line number, etc.) unless I > use the -d flag: > > $ ruby -d the_test.rb > Exception `NoMethodError' at ./lib.rb:3 - undefined method > `non_existent_method' for #<MyClass:0x2560c> > undefined method `non_existent_method' for #<MyClass:0x2560c> > > Is there a way to get the "full" backtrace when calling > "the_test.rb" without using the -d flag? I hope this makes sense. The culprit is that you're rescuing the exception, and simply printing its name. To get the whole backtrace, you could not rescue the exception in the first place, re-raise the exception, or print the backtrace manually. matthew smillie. begin MtClass.new.throws_an_exception rescue => e puts "oops, an exception" raise e end begin MyClass.new.throws_an_exception rescue => e puts e puts e.backtrace end Relevant docs are: Kernel#raise: http://ruby-doc.org/core/classes/Kernel.html#M002948 Exception#backtrace: http://ruby-doc.org/core/classes/ Exception.html#M001216