0 NULL ./dbg-support.tests: line 72: caller: -z: invalid option caller: usage: caller [expr] debug lineno: 78 main debug lineno: 81 main FUNCNAME main debug lineno: 85 main debug lineno: 30 fn1 debug lineno: 31 fn1 LINENO 31 debug lineno: 32 fn1 LINENO 32 debug lineno: 33 fn1 BASH_SOURCE[0] ./dbg-support.tests debug lineno: 34 fn1 FUNCNAME[0] fn1 debug lineno: 35 fn1 debug lineno: 35 fn1 85 ./dbg-support.tests debug lineno: 36 fn1 debug lineno: 36 fn1 85 main ./dbg-support.tests debug lineno: 37 fn1 debug lineno: 37 fn1 debug lineno: 38 fn1 ./dbg-support.tests: line 38: caller: foo: invalid number caller: usage: caller [expr] debug lineno: 38 fn1 debug lineno: 30 fn1 debug lineno: 25 print_return_trap debug lineno: 26 print_return_trap return lineno: 30 fn1 debug lineno: 27 print_return_trap debug lineno: 86 main debug lineno: 41 fn2 debug lineno: 42 fn2 fn2 here. Calling fn1... debug lineno: 43 fn2 debug lineno: 30 fn1 debug lineno: 31 fn1 LINENO 31 debug lineno: 32 fn1 LINENO 32 debug lineno: 33 fn1 BASH_SOURCE[0] ./dbg-support.tests debug lineno: 34 fn1 FUNCNAME[0] fn1 debug lineno: 35 fn1 debug lineno: 35 fn1 43 ./dbg-support.tests debug lineno: 36 fn1 debug lineno: 36 fn1 43 fn2 ./dbg-support.tests debug lineno: 37 fn1 debug lineno: 37 fn1 86 main ./dbg-support.tests debug lineno: 38 fn1 ./dbg-support.tests: line 38: caller: foo: invalid number caller: usage: caller [expr] debug lineno: 38 fn1 debug lineno: 30 fn1 debug lineno: 25 print_return_trap debug lineno: 26 print_return_trap return lineno: 30 fn1 debug lineno: 27 print_return_trap debug lineno: 41 fn2 debug lineno: 25 print_return_trap debug lineno: 26 print_return_trap return lineno: 41 fn2 debug lineno: 27 print_return_trap debug lineno: 87 main debug lineno: 46 fn3 debug lineno: 47 fn3 LINENO 47 debug lineno: 48 fn3 BASH_SOURCE[0] ./dbg-support.tests debug lineno: 51 fn3 debug lineno: 52 fn3 debug lineno: 53 fn3 debug lineno: 53 fn3 debug lineno: 54 fn3 debug lineno: 55 fn3 debug lineno: 56 fn3 fn3 called from file `./dbg-support.tests' at line 0 debug lineno: 53 fn3 debug lineno: 53 fn3 debug lineno: 54 fn3 debug lineno: 55 fn3 debug lineno: 55 fn3 debug lineno: 56 fn3 main called from file `./dbg-support.tests' at line 0 debug lineno: 53 fn3 debug lineno: 53 fn3 debug lineno: 59 fn3 debug lineno: 31 source SOURCED LINENO 31 debug lineno: 32 source SOURCED BASH_SOURCE[0] ./dbg-support.sub debug lineno: 33 source debug lineno: 16 sourced_fn debug lineno: 17 sourced_fn debug lineno: 18 sourced_fn SOURCED FN LINENO 18 debug lineno: 21 sourced_fn debug lineno: 22 sourced_fn debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 24 sourced_fn debug lineno: 25 sourced_fn debug lineno: 26 sourced_fn FUNCNAME[0]: sourced_fn called from ./dbg-support.sub at line 33 debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 24 sourced_fn debug lineno: 25 sourced_fn debug lineno: 26 sourced_fn FUNCNAME[1]: source called from ./dbg-support.tests at line 59 debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 24 sourced_fn debug lineno: 25 sourced_fn debug lineno: 26 sourced_fn FUNCNAME[2]: fn3 called from ./dbg-support.tests at line 87 debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 24 sourced_fn debug lineno: 25 sourced_fn debug lineno: 25 sourced_fn debug lineno: 26 sourced_fn FUNCNAME[3]: main called from ./dbg-support.tests at line 0 debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 16 sourced_fn debug lineno: 25 print_return_trap debug lineno: 26 print_return_trap return lineno: 16 sourced_fn debug lineno: 27 print_return_trap debug lineno: 59 fn3 debug lineno: 25 print_return_trap debug lineno: 26 print_return_trap return lineno: 59 fn3 debug lineno: 27 print_return_trap debug lineno: 46 fn3 debug lineno: 25 print_return_trap debug lineno: 26 print_return_trap return lineno: 46 fn3 debug lineno: 27 print_return_trap debug lineno: 88 main debug lineno: 31 source SOURCED LINENO 31 debug lineno: 32 source SOURCED BASH_SOURCE[0] ./dbg-support.sub debug lineno: 33 source debug lineno: 16 sourced_fn debug lineno: 17 sourced_fn debug lineno: 18 sourced_fn SOURCED FN LINENO 18 debug lineno: 21 sourced_fn debug lineno: 22 sourced_fn debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 24 sourced_fn debug lineno: 25 sourced_fn debug lineno: 26 sourced_fn FUNCNAME[0]: sourced_fn called from ./dbg-support.sub at line 33 debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 24 sourced_fn debug lineno: 25 sourced_fn debug lineno: 26 sourced_fn FUNCNAME[1]: source called from ./dbg-support.tests at line 88 debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 24 sourced_fn debug lineno: 25 sourced_fn debug lineno: 25 sourced_fn debug lineno: 26 sourced_fn FUNCNAME[2]: main called from ./dbg-support.tests at line 0 debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 16 sourced_fn debug lineno: 25 print_return_trap debug lineno: 26 print_return_trap return lineno: 16 sourced_fn debug lineno: 27 print_return_trap debug lineno: 88 main debug lineno: 25 print_return_trap debug lineno: 26 print_return_trap return lineno: 88 main debug lineno: 27 print_return_trap debug lineno: 91 main debug lineno: 94 main LINENO 31 LINENO 32 BASH_SOURCE[0] ./dbg-support.tests FUNCNAME[0] fn1 94 ./dbg-support.tests 94 main ./dbg-support.tests ./dbg-support.tests: line 38: caller: foo: invalid number caller: usage: caller [expr] debug lineno: 95 main fn2 here. Calling fn1... LINENO 31 LINENO 32 BASH_SOURCE[0] ./dbg-support.tests FUNCNAME[0] fn1 43 ./dbg-support.tests 43 fn2 ./dbg-support.tests 95 main ./dbg-support.tests ./dbg-support.tests: line 38: caller: foo: invalid number caller: usage: caller [expr] debug lineno: 96 main LINENO 47 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 31 SOURCED BASH_SOURCE[0] ./dbg-support.sub SOURCED FN LINENO 18 FUNCNAME[0]: sourced_fn called from ./dbg-support.sub at line 33 FUNCNAME[1]: source called from ./dbg-support.tests at line 59 FUNCNAME[2]: fn3 called from ./dbg-support.tests at line 96 FUNCNAME[3]: main called from ./dbg-support.tests at line 0 debug lineno: 97 main fn4 here. Calling fn3... LINENO 47 BASH_SOURCE[0] ./dbg-support.tests fn3 called from file `./dbg-support.tests' at line 97 fn4 called from file `./dbg-support.tests' at line 0 main called from file `./dbg-support.tests' at line 0 SOURCED LINENO 31 SOURCED BASH_SOURCE[0] ./dbg-support.sub SOURCED FN LINENO 18 FUNCNAME[0]: sourced_fn called from ./dbg-support.sub at line 33 FUNCNAME[1]: source called from ./dbg-support.tests at line 59 FUNCNAME[2]: fn3 called from ./dbg-support.tests at line 64 FUNCNAME[3]: fn4 called from ./dbg-support.tests at line 97 FUNCNAME[4]: main called from ./dbg-support.tests at line 0 debug lineno: 98 main SOURCED LINENO 31 SOURCED BASH_SOURCE[0] ./dbg-support.sub SOURCED FN LINENO 18 FUNCNAME[0]: sourced_fn called from ./dbg-support.sub at line 33 FUNCNAME[1]: source called from ./dbg-support.tests at line 98 FUNCNAME[2]: main called from ./dbg-support.tests at line 0 return lineno: 98 main debug lineno: 101 main debug lineno: 104 main debug lineno: 31 source SOURCED LINENO 31 debug lineno: 32 source SOURCED BASH_SOURCE[0] ./dbg-support.sub debug lineno: 33 source debug lineno: 16 sourced_fn debug lineno: 17 sourced_fn debug lineno: 18 sourced_fn SOURCED FN LINENO 18 debug lineno: 21 sourced_fn debug lineno: 22 sourced_fn debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 24 sourced_fn debug lineno: 25 sourced_fn debug lineno: 26 sourced_fn FUNCNAME[0]: sourced_fn called from ./dbg-support.sub at line 33 debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 24 sourced_fn debug lineno: 25 sourced_fn debug lineno: 26 sourced_fn FUNCNAME[1]: source called from ./dbg-support.tests at line 104 debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 24 sourced_fn debug lineno: 25 sourced_fn debug lineno: 25 sourced_fn debug lineno: 26 sourced_fn FUNCNAME[2]: main called from ./dbg-support.tests at line 0 debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 16 sourced_fn debug lineno: 25 print_return_trap debug lineno: 26 print_return_trap return lineno: 16 sourced_fn debug lineno: 27 print_return_trap debug lineno: 104 main debug lineno: 25 print_return_trap debug lineno: 26 print_return_trap return lineno: 104 main debug lineno: 27 print_return_trap debug lineno: 105 main debug lineno: 108 main debug lineno: 108 main debug lineno: 109 main debug lineno: 112 main debug lineno: 108 main debug lineno: 108 main debug lineno: 109 main debug lineno: 112 main debug lineno: 108 main debug lineno: 108 main debug lineno: 109 main debug lineno: 110 main Hit 2 debug lineno: 112 main debug lineno: 108 main debug lineno: 108 main debug lineno: 118 main SOURCED FN LINENO 18 FUNCNAME[0]: sourced_fn called from ./dbg-support.tests at line 118 FUNCNAME[1]: main called from ./dbg-support.tests at line 0 debug lineno: 119 main SOURCED FN LINENO 18 FUNCNAME[0]: sourced_fn called from ./dbg-support.tests at line 119 FUNCNAME[1]: main called from ./dbg-support.tests at line 0 debug lineno: 120 main debug lineno: 121 main SOURCED FN LINENO 18 FUNCNAME[0]: sourced_fn called from ./dbg-support.tests at line 121 FUNCNAME[1]: main called from ./dbg-support.tests at line 0 debug lineno: 125 main debug lineno: 126 main debug lineno: 16 sourced_fn debug lineno: 17 sourced_fn debug lineno: 18 sourced_fn SOURCED FN LINENO 18 debug lineno: 21 sourced_fn debug lineno: 22 sourced_fn debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 24 sourced_fn debug lineno: 25 sourced_fn debug lineno: 26 sourced_fn FUNCNAME[0]: sourced_fn called from ./dbg-support.tests at line 126 debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 24 sourced_fn debug lineno: 25 sourced_fn debug lineno: 25 sourced_fn debug lineno: 26 sourced_fn FUNCNAME[1]: main called from ./dbg-support.tests at line 0 debug lineno: 23 sourced_fn debug lineno: 23 sourced_fn debug lineno: 16 sourced_fn debug lineno: 25 print_return_trap debug lineno: 26 print_return_trap return lineno: 16 sourced_fn debug lineno: 27 print_return_trap debug lineno: 129 main debug lineno: 134 main debug lineno: 138 main got it debug lineno: 146 main debug lineno: 147 main debug lineno: 148 main debug lineno: 147 main debug lineno: 148 main debug lineno: 146 main debug lineno: 147 main debug lineno: 148 main debug lineno: 147 main debug lineno: 148 main debug lineno: 152 main main: calling f1 f1: calling f2 f2: calling f3 f3: calling callstack deep 6 0 z 1 3 2 y 3 2 4 x 5 1 FUNCNAME stack: f3 f2 f1 main 39 f2 ./dbg-support3.sub f3: returning f2: return from f3 f1: return from f2 main: f1 returns