debug lineno: 63 main debug lineno: 66 main FUNCNAME main debug lineno: 70 main debug lineno: 17 fn1 debug lineno: 18 fn1 LINENO 18 debug lineno: 19 fn1 LINENO 19 debug lineno: 20 fn1 BASH_SOURCE[0] ./dbg-support.tests debug lineno: 21 fn1 FUNCNAME[0] fn1 debug lineno: 22 fn1 debug lineno: 22 fn1 70 ./dbg-support.tests debug lineno: 23 fn1 debug lineno: 23 fn1 70 main ./dbg-support.tests debug lineno: 24 fn1 debug lineno: 24 fn1 debug lineno: 25 fn1 ./dbg-support.tests: line 25: caller: foo: invalid number caller: usage: caller [EXPR] debug lineno: 25 fn1 debug lineno: 17 fn1 debug lineno: 12 print_return_trap debug lineno: 13 print_return_trap return lineno: 17 fn1 debug lineno: 14 print_return_trap debug lineno: 71 main debug lineno: 28 fn2 debug lineno: 29 fn2 fn2 here. Calling fn1... debug lineno: 30 fn2 debug lineno: 17 fn1 debug lineno: 18 fn1 LINENO 18 debug lineno: 19 fn1 LINENO 19 debug lineno: 20 fn1 BASH_SOURCE[0] ./dbg-support.tests debug lineno: 21 fn1 FUNCNAME[0] fn1 debug lineno: 22 fn1 debug lineno: 22 fn1 30 ./dbg-support.tests debug lineno: 23 fn1 debug lineno: 23 fn1 30 fn2 ./dbg-support.tests debug lineno: 24 fn1 debug lineno: 24 fn1 71 main ./dbg-support.tests debug lineno: 25 fn1 ./dbg-support.tests: line 25: caller: foo: invalid number caller: usage: caller [EXPR] debug lineno: 25 fn1 debug lineno: 17 fn1 debug lineno: 12 print_return_trap debug lineno: 13 print_return_trap return lineno: 17 fn1 debug lineno: 14 print_return_trap debug lineno: 28 fn2 debug lineno: 12 print_return_trap debug lineno: 13 print_return_trap return lineno: 28 fn2 debug lineno: 14 print_return_trap debug lineno: 72 main debug lineno: 33 fn3 debug lineno: 34 fn3 LINENO 34 debug lineno: 35 fn3 BASH_SOURCE[0] ./dbg-support.tests debug lineno: 38 fn3 debug lineno: 39 fn3 debug lineno: 40 fn3 debug lineno: 40 fn3 debug lineno: 41 fn3 debug lineno: 42 fn3 debug lineno: 43 fn3 fn3 called from file `./dbg-support.tests' at line 0 debug lineno: 40 fn3 debug lineno: 40 fn3 debug lineno: 41 fn3 debug lineno: 42 fn3 debug lineno: 42 fn3 debug lineno: 43 fn3 main called from file `./dbg-support.tests' at line 0 debug lineno: 40 fn3 debug lineno: 40 fn3 debug lineno: 46 fn3 debug lineno: 18 source SOURCED LINENO 18 debug lineno: 19 source SOURCED BASH_SOURCE[0] ./dbg-support.sub debug lineno: 20 source debug lineno: 3 sourced_fn debug lineno: 4 sourced_fn debug lineno: 5 sourced_fn SOURCED FN LINENO 5 debug lineno: 8 sourced_fn debug lineno: 9 sourced_fn debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 11 sourced_fn debug lineno: 12 sourced_fn debug lineno: 13 sourced_fn FUNCNAME[0]: sourced_fn called from ./dbg-support.sub at line 20 debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 11 sourced_fn debug lineno: 12 sourced_fn debug lineno: 13 sourced_fn FUNCNAME[1]: source called from ./dbg-support.tests at line 46 debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 11 sourced_fn debug lineno: 12 sourced_fn debug lineno: 13 sourced_fn FUNCNAME[2]: fn3 called from ./dbg-support.tests at line 72 debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 11 sourced_fn debug lineno: 12 sourced_fn debug lineno: 12 sourced_fn debug lineno: 13 sourced_fn FUNCNAME[3]: main called from ./dbg-support.tests at line 0 debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 3 sourced_fn debug lineno: 12 print_return_trap debug lineno: 13 print_return_trap return lineno: 3 sourced_fn debug lineno: 14 print_return_trap debug lineno: 46 fn3 debug lineno: 12 print_return_trap debug lineno: 13 print_return_trap return lineno: 46 fn3 debug lineno: 14 print_return_trap debug lineno: 33 fn3 debug lineno: 12 print_return_trap debug lineno: 13 print_return_trap return lineno: 33 fn3 debug lineno: 14 print_return_trap debug lineno: 73 main debug lineno: 18 source SOURCED LINENO 18 debug lineno: 19 source SOURCED BASH_SOURCE[0] ./dbg-support.sub debug lineno: 20 source debug lineno: 3 sourced_fn debug lineno: 4 sourced_fn debug lineno: 5 sourced_fn SOURCED FN LINENO 5 debug lineno: 8 sourced_fn debug lineno: 9 sourced_fn debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 11 sourced_fn debug lineno: 12 sourced_fn debug lineno: 13 sourced_fn FUNCNAME[0]: sourced_fn called from ./dbg-support.sub at line 20 debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 11 sourced_fn debug lineno: 12 sourced_fn debug lineno: 13 sourced_fn FUNCNAME[1]: source called from ./dbg-support.tests at line 73 debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 11 sourced_fn debug lineno: 12 sourced_fn debug lineno: 12 sourced_fn debug lineno: 13 sourced_fn FUNCNAME[2]: main called from ./dbg-support.tests at line 0 debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 3 sourced_fn debug lineno: 12 print_return_trap debug lineno: 13 print_return_trap return lineno: 3 sourced_fn debug lineno: 14 print_return_trap debug lineno: 73 main debug lineno: 12 print_return_trap debug lineno: 13 print_return_trap return lineno: 73 main debug lineno: 14 print_return_trap debug lineno: 76 main debug lineno: 79 main LINENO 18 LINENO 19 BASH_SOURCE[0] ./dbg-support.tests FUNCNAME[0] fn1 79 ./dbg-support.tests 79 main ./dbg-support.tests ./dbg-support.tests: line 25: caller: foo: invalid number caller: usage: caller [EXPR] debug lineno: 80 main fn2 here. Calling fn1... LINENO 18 LINENO 19 BASH_SOURCE[0] ./dbg-support.tests FUNCNAME[0] fn1 30 ./dbg-support.tests 30 fn2 ./dbg-support.tests 80 main ./dbg-support.tests ./dbg-support.tests: line 25: caller: foo: invalid number caller: usage: caller [EXPR] debug lineno: 81 main LINENO 34 BASH_SOURCE[0] ./dbg-support.tests fn3 called from file `./dbg-support.tests' at line 0 main called from file `./dbg-support.tests' at line 0 SOURCED LINENO 18 SOURCED BASH_SOURCE[0] ./dbg-support.sub SOURCED FN LINENO 5 FUNCNAME[0]: sourced_fn called from ./dbg-support.sub at line 20 FUNCNAME[1]: source called from ./dbg-support.tests at line 46 FUNCNAME[2]: fn3 called from ./dbg-support.tests at line 81 FUNCNAME[3]: main called from ./dbg-support.tests at line 0 debug lineno: 82 main fn4 here. Calling fn3... LINENO 34 BASH_SOURCE[0] ./dbg-support.tests fn3 called from file `./dbg-support.tests' at line 82 fn4 called from file `./dbg-support.tests' at line 0 main called from file `./dbg-support.tests' at line 0 SOURCED LINENO 18 SOURCED BASH_SOURCE[0] ./dbg-support.sub SOURCED FN LINENO 5 FUNCNAME[0]: sourced_fn called from ./dbg-support.sub at line 20 FUNCNAME[1]: source called from ./dbg-support.tests at line 46 FUNCNAME[2]: fn3 called from ./dbg-support.tests at line 51 FUNCNAME[3]: fn4 called from ./dbg-support.tests at line 82 FUNCNAME[4]: main called from ./dbg-support.tests at line 0 debug lineno: 83 main SOURCED LINENO 18 SOURCED BASH_SOURCE[0] ./dbg-support.sub SOURCED FN LINENO 5 FUNCNAME[0]: sourced_fn called from ./dbg-support.sub at line 20 FUNCNAME[1]: source called from ./dbg-support.tests at line 83 FUNCNAME[2]: main called from ./dbg-support.tests at line 0 return lineno: 83 main debug lineno: 86 main debug lineno: 89 main debug lineno: 18 source SOURCED LINENO 18 debug lineno: 19 source SOURCED BASH_SOURCE[0] ./dbg-support.sub debug lineno: 20 source debug lineno: 3 sourced_fn debug lineno: 4 sourced_fn debug lineno: 5 sourced_fn SOURCED FN LINENO 5 debug lineno: 8 sourced_fn debug lineno: 9 sourced_fn debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 11 sourced_fn debug lineno: 12 sourced_fn debug lineno: 13 sourced_fn FUNCNAME[0]: sourced_fn called from ./dbg-support.sub at line 20 debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 11 sourced_fn debug lineno: 12 sourced_fn debug lineno: 13 sourced_fn FUNCNAME[1]: source called from ./dbg-support.tests at line 89 debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 11 sourced_fn debug lineno: 12 sourced_fn debug lineno: 12 sourced_fn debug lineno: 13 sourced_fn FUNCNAME[2]: main called from ./dbg-support.tests at line 0 debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 3 sourced_fn debug lineno: 12 print_return_trap debug lineno: 13 print_return_trap return lineno: 3 sourced_fn debug lineno: 14 print_return_trap debug lineno: 89 main debug lineno: 12 print_return_trap debug lineno: 13 print_return_trap return lineno: 89 main debug lineno: 14 print_return_trap debug lineno: 90 main debug lineno: 93 main debug lineno: 93 main debug lineno: 94 main debug lineno: 97 main debug lineno: 93 main debug lineno: 93 main debug lineno: 94 main debug lineno: 97 main debug lineno: 93 main debug lineno: 93 main debug lineno: 94 main debug lineno: 95 main Hit 2 debug lineno: 97 main debug lineno: 93 main debug lineno: 93 main debug lineno: 103 main SOURCED FN LINENO 5 FUNCNAME[0]: sourced_fn called from ./dbg-support.tests at line 103 FUNCNAME[1]: main called from ./dbg-support.tests at line 0 debug lineno: 104 main SOURCED FN LINENO 5 FUNCNAME[0]: sourced_fn called from ./dbg-support.tests at line 104 FUNCNAME[1]: main called from ./dbg-support.tests at line 0 debug lineno: 105 main debug lineno: 106 main SOURCED FN LINENO 5 FUNCNAME[0]: sourced_fn called from ./dbg-support.tests at line 106 FUNCNAME[1]: main called from ./dbg-support.tests at line 0 debug lineno: 110 main debug lineno: 111 main debug lineno: 3 sourced_fn debug lineno: 4 sourced_fn debug lineno: 5 sourced_fn SOURCED FN LINENO 5 debug lineno: 8 sourced_fn debug lineno: 9 sourced_fn debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 11 sourced_fn debug lineno: 12 sourced_fn debug lineno: 13 sourced_fn FUNCNAME[0]: sourced_fn called from ./dbg-support.tests at line 111 debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 11 sourced_fn debug lineno: 12 sourced_fn debug lineno: 12 sourced_fn debug lineno: 13 sourced_fn FUNCNAME[1]: main called from ./dbg-support.tests at line 0 debug lineno: 10 sourced_fn debug lineno: 10 sourced_fn debug lineno: 3 sourced_fn debug lineno: 12 print_return_trap debug lineno: 13 print_return_trap return lineno: 3 sourced_fn debug lineno: 14 print_return_trap debug lineno: 114 main debug lineno: 119 main debug lineno: 123 main got it debug lineno: 131 main debug lineno: 132 main debug lineno: 133 main debug lineno: 132 main debug lineno: 133 main debug lineno: 131 main debug lineno: 132 main debug lineno: 133 main debug lineno: 132 main debug lineno: 133 main