From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: poffice@blade.nagaokaut.ac.jp Delivered-To: poffice@blade.nagaokaut.ac.jp Received: from kankan.nagaokaut.ac.jp (kankan.nagaokaut.ac.jp [133.44.2.24]) by blade.nagaokaut.ac.jp (Postfix) with ESMTP id 403B317D1A6A for ; Tue, 23 Jul 2013 05:24:05 +0900 (JST) Received: from funfun.nagaokaut.ac.jp (funfun.nagaokaut.ac.jp [133.44.2.201]) by kankan.nagaokaut.ac.jp (Postfix) with ESMTP id 86867EA6AED for ; Tue, 23 Jul 2013 04:56:17 +0900 (JST) Received: from funfun.nagaokaut.ac.jp (localhost.nagaokaut.ac.jp [127.0.0.1]) by funfun.nagaokaut.ac.jp (Postfix) with ESMTP id 7F38297A842 for ; Tue, 23 Jul 2013 04:56:17 +0900 (JST) X-Virus-Scanned: amavisd-new at nagaokaut.ac.jp Authentication-Results: funfun.nagaokaut.ac.jp (amavisd-new); dkim=fail (2048-bit key) reason="fail (message has been altered)" header.d=gmail.com Received: from funfun.nagaokaut.ac.jp ([127.0.0.1]) by funfun.nagaokaut.ac.jp (funfun.nagaokaut.ac.jp [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dzn_4-4L0-Zt for ; Tue, 23 Jul 2013 04:56:17 +0900 (JST) Received: from voscc.nagaokaut.ac.jp (voscc.nagaokaut.ac.jp [133.44.1.100]) by funfun.nagaokaut.ac.jp (Postfix) with ESMTP id 3BEDA97A840 for ; Tue, 23 Jul 2013 04:56:17 +0900 (JST) Received: from carbon.ruby-lang.org (carbon.ruby-lang.org [221.186.184.68]) by voscc.nagaokaut.ac.jp (Postfix) with ESMTP id 4C50F952448 for ; Tue, 23 Jul 2013 04:56:15 +0900 (JST) Received: from beryllium.ruby-lang.org (beryllium.ruby-lang.org [127.0.0.1]) by carbon.ruby-lang.org (Postfix) with ESMTP id 099B03C21EBBE; Tue, 23 Jul 2013 04:56:14 +0900 (JST) Received: from mail-ea0-f175.google.com (mail-ea0-f175.google.com [209.85.215.175]) by carbon.ruby-lang.org (Postfix) with ESMTP id 7D25E3C21ED56 for ; Tue, 23 Jul 2013 04:56:12 +0900 (JST) Received: by mail-ea0-f175.google.com with SMTP id z7so4002391eaf.6 for ; Mon, 22 Jul 2013 12:56:11 -0700 (PDT) Received: by 10.14.174.65 with HTTP; Mon, 22 Jul 2013 12:55:50 -0700 (PDT) Delivered-To: ruby-core@ruby-lang.org Date: Tue, 23 Jul 2013 04:56:13 +0900 Posted: Mon, 22 Jul 2013 22:55:50 +0300 From: Joshua Ballanco Reply-To: ruby-core@ruby-lang.org Subject: [ruby-core:56109] Re: [CommonRuby - Feature #8661][Open] Add option to print backstrace in reverse order(stack frames first & error last) To: ruby-core@ruby-lang.org Message-Id: In-Reply-To: References: X-ML-Name: ruby-core X-Mail-Count: 56109 X-MLServer: fml [fml 4.0.3 release (20011202/4.0.3)]; post only (only members can post) X-ML-Info: If you have a question, send e-mail with the body "help" (without quotes) to the address ruby-core-ctl@ruby-lang.org; help= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=eEiMwsvm5X87ynHuvCw33nAnBssMFlciNp0FY/Zxn/8=; b=my4U0m0LLDTGHttg14YSCm0FHRz45fxYWVGFohg0lTe9u49nxsfw9DTPTQkjxwNehA 3Nbugr/PMlXCSqLMrvF8gsi4gUmjn2pxmbREo9bwsjm+IBgDx4jJaH3qLaKppD+6Kg6S c/AlWYds9jU8VHXRlSUqcsxJggygOWXYn5wOvpLAUEUkvmPTKbjozbSpHZSOWGLs50dC k4WSwqimM4SXmaCwJyTk4MIwvi7MA1s5yZTaY+U83xNCcvClqNGvEQxGBwpe9vImx+xA 3oupBepU/sZgVGcpEgcUaYqbp1tjbz3qgPytMJim+Jk1VK2b5vztWv0HU48HaQIrZ0s1 U+OQ== X-Received: by 10.15.108.142 with SMTP id cd14mr28798740eeb.125.1374522971015; Mon, 22 Jul 2013 12:56:11 -0700 (PDT) Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=089e0160ca3c6c6d0d04e21f11db Precedence: bulk List-Id: ruby-core.ruby-lang.org List-Software: fml [fml 4.0.3 release (20011202/4.0.3)] List-Post: List-Owner: List-Help: List-Unsubscribe: --089e0160ca3c6c6d0d04e21f11db Content-Type: text/plain; charset=UTF-8 You can already accomplish something like this yourself: begin raise "Hello!" rescue Exception => e puts e.backtrace.reverse.join("\n") puts e.message end Simple! On Sat, Jul 20, 2013 at 11:20 PM, gary4gar (Gaurish Sharma) < gary4gar@gmail.com> wrote: > > Issue #8661 has been reported by gary4gar (Gaurish Sharma). > > ---------------------------------------- > Feature #8661: Add option to print backstrace in reverse order(stack > frames first & error last) > https://bugs.ruby-lang.org/issues/8661 > > Author: gary4gar (Gaurish Sharma) > Status: Open > Priority: Normal > Assignee: > Category: > Target version: > > > Currently the way ruby prints the backtrace is that the error comes first > & then the stack frames. like this > > Main Error Message > stack frame 1 > stack frame 2 > stack frame 3 > ..... > > this is perfectly fine provided > > 1. Backstraces are short, so fits in terminal.hence, no need to scroll. > 2. you read it from top to bottom. > > > But, I am a rails developer where > > 1. Backstraces are always HUGE, therefore seldom don't fit in terminal. > Means LOTS of scrolling to do everytime we get an error. > 2. in terminal we tend to read backstraces from bottom to top, especially > when tailing(tail -f) the production logs. > 3. people, who practice Test-driven development literally spend most of > their time scrolling to read backstraces to the point most end up buying a > larger display. > > Proposed Solution: > Please add a way so we can configure backstraces to be printed in reverse > order. so if you are reading from bottom, say from terminal, you can get > the main error message without need to scroll. like this > > > > stack frame 3 > stack frame 2 > stack frame 1 > Main Error Message > ..... > > this would save lot of time because when the error message is print at the > bottom, no need to scroll for reading it. Not sure if this can be done > today. I tried Overriding Exception#backtrace but it caused stack level too > deep & illegal hardware instruction Error. > > Attached are currently what backstrace currently looks like & how there be > an option to make it look for comparison. > > > -- > http://bugs.ruby-lang.org/ > > --089e0160ca3c6c6d0d04e21f11db Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
You can already accomplish something like this yourself:
=C2=A0 =C2=A0 begin
=C2=A0 =C2=A0 =C2=A0 raise = "Hello!"
=C2=A0 =C2=A0 rescue Exception =3D> e
=
=C2=A0 =C2=A0 =C2=A0 puts e.backtrace.reverse.join("\n")
=C2=A0 =C2=A0 =C2=A0 puts e.message
=C2=A0 =C2=A0 end
<= div>
Simple!


On Sat, Jul 20, 2013 at 11:20 PM, gary4gar (Gauris= h Sharma) <gary4gar@gmail.com> wrote:

Issue #8661 has been reported by gary4gar (Gaurish Sharma).

----------------------------------------
Feature #8661: Add option to print backstrace in reverse order(stack frames= first & error last)
https:= //bugs.ruby-lang.org/issues/8661

Author: gary4gar (Gaurish Sharma)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:


Currently the way ruby prints the backtrace is that the error comes first &= amp; then the stack frames. like this

=C2=A0 Main Error Message
stack frame 1
stack frame 2
stack frame 3
.....

=C2=A0this is perfectly fine provided

1. Backstraces are short, so fits in terminal.hence, no need to scroll.
2. you read it from top to bottom.


But, I am a rails developer where

1. Backstraces are always HUGE, therefore seldom don't fit in terminal.= Means LOTS of scrolling to do everytime we get an error.
2. in terminal we tend to read backstraces from bottom to top, especially w= hen tailing(tail -f) the production logs.
3. people, who practice Test-driven development literally spend most of the= ir time scrolling to read backstraces to the point most end up buying a lar= ger display.

Proposed Solution:
=C2=A0Please add a way so we can configure backstraces to be printed in rev= erse order. so if you are reading from bottom, say from terminal, you can g= et the main error message without need to scroll. like this



stack frame 3
stack frame 2
stack frame 1
=C2=A0Main Error Message
.....

this would save lot of time because when the error message is print at the = bottom, no need to scroll for reading it. Not sure if this can be done toda= y. I tried Overriding Exception#backtrace but it caused stack level too dee= p & illegal hardware instruction Error.

Attached are currently what backstrace currently looks like & how there= be an option to make it look for comparison.


--
http://bugs.ruby-l= ang.org/


--089e0160ca3c6c6d0d04e21f11db--