+my $_isdbg = ''; # current dbg level we are processing
+
+# print stack trace
+sub dbgtrace
+{
+# say "*** in dbgtrace";
+ $_isdbg = 'trace';
+ dbg(@_);
+ for (my $i = 1; (my ($pkg, $fn, $l, $subr) = caller($i)); ++$i) {
+# say "*** in dbgtrace $i";
+ next if $pkg eq 'DXDebug';
+# say "*** in dbgtrace after package";
+ last if $pkg =~ /Mojo/;
+# say "*** in dbgtrace $i after mojo";
+ $_isdbg = 'trace';
+ dbg("Stack ($i): ${pkg}::$subr in $fn line: $l");
+ }
+ $_isdbg = '';
+}