debug lineno: 74 main debug lineno: 77 main FUNCNAME main debug lineno: 81 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 81 ./dbg-support.tests debug lineno: 36 fn1 debug lineno: 36 fn1 81 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: 82 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 82 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: 83 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 83 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: 84 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 84 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: 84 main debug lineno: 25 print_return_trap debug lineno: 26 print_return_trap return lineno: 84 main debug lineno: 27 print_return_trap debug lineno: 87 main debug lineno: 90 main LINENO 31 LINENO 32 BASH_SOURCE[0] ./dbg-support.tests FUNCNAME[0] fn1 90 ./dbg-support.tests 90 main ./dbg-support.tests ./dbg-support.tests: line 38: caller: foo: invalid number caller: usage: caller [expr] debug lineno: 91 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 91 main ./dbg-support.tests ./dbg-support.tests: line 38: caller: foo: invalid number caller: usage: caller [expr] debug lineno: 92 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 92 FUNCNAME[3]: main called from ./dbg-support.tests at line 0 debug lineno: 93 main fn4 here. Calling fn3... LINENO 47 BASH_SOURCE[0] ./dbg-support.tests fn3 called from file `./dbg-support.tests' at line 93 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 93 FUNCNAME[4]: main called from ./dbg-support.tests at line 0 debug lineno: 94 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 94 FUNCNAME[2]: main called from ./dbg-support.tests at line 0 return lineno: 94 main debug lineno: 97 main debug lineno: 100 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 100 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: 100 main debug lineno: 25 print_return_trap debug lineno: 26 print_return_trap return lineno: 100 main debug lineno: 27 print_return_trap debug lineno: 101 main debug lineno: 104 main debug lineno: 104 main debug lineno: 105 main debug lineno: 108 main debug lineno: 104 main debug lineno: 104 main debug lineno: 105 main debug lineno: 108 main debug lineno: 104 main debug lineno: 104 main debug lineno: 105 main debug lineno: 106 main Hit 2 debug lineno: 108 main debug lineno: 104 main debug lineno: 104 main debug lineno: 114 main SOURCED FN LINENO 18 FUNCNAME[0]: sourced_fn called from ./dbg-support.tests at line 114 FUNCNAME[1]: main called from ./dbg-support.tests at line 0 debug lineno: 115 main SOURCED FN LINENO 18 FUNCNAME[0]: sourced_fn called from ./dbg-support.tests at line 115 FUNCNAME[1]: main called from ./dbg-support.tests at line 0 debug lineno: 116 main debug lineno: 117 main SOURCED FN LINENO 18 FUNCNAME[0]: sourced_fn called from ./dbg-support.tests at line 117 FUNCNAME[1]: main called from ./dbg-support.tests at line 0 debug lineno: 121 main debug lineno: 122 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 122 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: 125 main debug lineno: 130 main debug lineno: 134 main got it debug lineno: 142 main debug lineno: 143 main debug lineno: 144 main debug lineno: 143 main debug lineno: 144 main debug lineno: 142 main debug lineno: 143 main debug lineno: 144 main debug lineno: 143 main debug lineno: 144 main debug lineno: 148 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