Created
April 28, 2011 23:01
-
-
Save wayneeseguin/947529 to your computer and use it in GitHub Desktop.
Which stack trace option yields the most useful information best?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Note: This part of the discussion is now over, #1 was the "winner" :) | |
See the other file for Part II of the discussion and the end result. | |
# Option 1 - Tabular | |
5. fail() 266 /usr/local/bdsm/modules/bash/logging/dsl | |
4. module_dsl() 236 /usr/local/bdsm/modules/bash/modules/dsl | |
3. source() 3 /usr/local/bdsm/extensions/mod/bin/dsl | |
2. extension_action() 152 /usr/local/bdsm/modules/bash/extensions/dsl | |
1. main() 76 /usr/local/bin/bdsm | |
# Option 2 - Nested, by function | |
main() 76 /usr/local/bin/bdsm | |
extension_action() 152 /usr/local/bdsm/modules/bash/extensions/dsl | |
source() 3 /usr/local/bdsm/extensions/mod/bin/dsl | |
module_dsl() 236 /usr/local/bdsm/modules/bash/modules/dsl | |
fail() 266 /usr/local/bdsm/modules/bash/logging/dsl | |
# Option 3 - Nested, by function, reversed order | |
fail() 266 /usr/local/bdsm/modules/bash/logging/dsl | |
module_dsl() 236 /usr/local/bdsm/modules/bash/modules/dsl | |
source() 3 /usr/local/bdsm/extensions/mod/bin/dsl | |
extension_action() 152 /usr/local/bdsm/modules/bash/extensions/dsl | |
main() 76 /usr/local/bin/bdsm | |
# Option 4 - Nested, by function, reversed order, reversed nesting | |
fail() 266 /usr/local/bdsm/modules/bash/logging/dsl | |
module_dsl() 236 /usr/local/bdsm/modules/bash/modules/dsl | |
source() 3 /usr/local/bdsm/extensions/mod/bin/dsl | |
extension_action() 152 /usr/local/bdsm/modules/bash/extensions/dsl | |
main() 76 /usr/local/bin/bdsm | |
# Option 6 - Tabular, Reversed | |
1. main() 76 /usr/local/bin/bdsm | |
2. extension_action() 152 /usr/local/bdsm/modules/bash/extensions/dsl | |
3. source() 3 /usr/local/bdsm/extensions/mod/bin/dsl | |
4. module_dsl() 236 /usr/local/bdsm/modules/bash/modules/dsl | |
5. fail() 266 /usr/local/bdsm/modules/bash/logging/dsl |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# BDSM Framework Backtraces (bash) | |
∴ for editor in ' ' less nano vi vim emacs mvim mate; do export EDITOR="${editor:-}"; printf "\n\nEDITOR: ${EDITOR:-}\n"; bdsm module dingus; done | |
EDITOR: | |
Action binary/file dingus missing for extension mod | |
(/usr/local/bdsm/extensions/mod/bin/dingus) | |
function() $ +# source file | |
=============================================================================================== | |
fail() $ +265 /usr/local/bdsm/modules/bash/logging/dsl | |
extension_action() $ +84 /usr/local/bdsm/modules/bash/extensions/dsl | |
main() $ +76 /usr/local/bin/bdsm | |
=============================================================================================== | |
EDITOR: less | |
Action binary/file dingus missing for extension mod | |
(/usr/local/bdsm/extensions/mod/bin/dingus) | |
function() $ +# source file | |
=============================================================================================== | |
fail() $ less +265 /usr/local/bdsm/modules/bash/logging/dsl | |
extension_action() $ less +84 /usr/local/bdsm/modules/bash/extensions/dsl | |
main() $ less +76 /usr/local/bin/bdsm | |
=============================================================================================== | |
EDITOR: nano | |
Action binary/file dingus missing for extension mod | |
(/usr/local/bdsm/extensions/mod/bin/dingus) | |
function() $ +# source file | |
=============================================================================================== | |
fail() $ nano +265 /usr/local/bdsm/modules/bash/logging/dsl | |
extension_action() $ nano +84 /usr/local/bdsm/modules/bash/extensions/dsl | |
main() $ nano +76 /usr/local/bin/bdsm | |
=============================================================================================== | |
EDITOR: vi | |
Action binary/file dingus missing for extension mod | |
(/usr/local/bdsm/extensions/mod/bin/dingus) | |
function() $ +# source file | |
=============================================================================================== | |
fail() $ vi +265 /usr/local/bdsm/modules/bash/logging/dsl | |
extension_action() $ vi +84 /usr/local/bdsm/modules/bash/extensions/dsl | |
main() $ vi +76 /usr/local/bin/bdsm | |
=============================================================================================== | |
EDITOR: vim | |
Action binary/file dingus missing for extension mod | |
(/usr/local/bdsm/extensions/mod/bin/dingus) | |
function() $ +# source file | |
=============================================================================================== | |
fail() $ vim +265 /usr/local/bdsm/modules/bash/logging/dsl | |
extension_action() $ vim +84 /usr/local/bdsm/modules/bash/extensions/dsl | |
main() $ vim +76 /usr/local/bin/bdsm | |
=============================================================================================== | |
EDITOR: emacs | |
Action binary/file dingus missing for extension mod | |
(/usr/local/bdsm/extensions/mod/bin/dingus) | |
function() $ +# source file | |
=============================================================================================== | |
fail() $ emacs +265 /usr/local/bdsm/modules/bash/logging/dsl | |
extension_action() $ emacs +84 /usr/local/bdsm/modules/bash/extensions/dsl | |
main() $ emacs +76 /usr/local/bin/bdsm | |
=============================================================================================== | |
EDITOR: mvim | |
Action binary/file dingus missing for extension mod | |
(/usr/local/bdsm/extensions/mod/bin/dingus) | |
function() Source | |
=============================================================================================== | |
fail() mvim://open?url=file:///usr/local/bdsm/modules/bash/logging/dsl&line=265 | |
extension_action() mvim://open?url=file:///usr/local/bdsm/modules/bash/extensions/dsl&line=84 | |
main() mvim://open?url=file:///usr/local/bin/bdsm&line=76 | |
=============================================================================================== | |
EDITOR: mate | |
Action binary/file dingus missing for extension mod | |
(/usr/local/bdsm/extensions/mod/bin/dingus) | |
function() Source | |
=============================================================================================== | |
fail() mate://open?url=file:///usr/local/bdsm/modules/bash/logging/dsl&line=265 | |
extension_action() mate://open?url=file:///usr/local/bdsm/modules/bash/extensions/dsl&line=84 | |
main() mate://open?url=file:///usr/local/bin/bdsm&line=76 | |
=============================================================================================== |
It would be easiest to read if the error message were at the same end of the stack trace as the failing function. [ie, at the top for option 1, or at the bottom for option 6.]
Opinions are like assholes.
Option 6 because it presents the most useful information at the bottom, which is the first thing I will see in my console. Scrolling up sucks.
You should change the line number syntax to +30 path/to/file
. This will allow one to copy/paste it into a vim
/ emacsclient
command:
vim +30 path/to/script.sh
Now that I LOVE :)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Option 1, please. Indentation is hella bad as nesting gets deep and it's honestly the way I've grown accustomed to reading stack traces. It's ingrained to work back up the stack.