Expanding "<stack>" gives you the most information.  But the form is a
bit hard to parse, because it was kept compact.  With some effort you
can parse it back into a list of function calls and script commands.
You can use "getscriptinfo()" to get the script file name from the
script ID, which is inside the function name after <SNR>:
	<SNR>74_OuterFunc[7]
Here "74" is the script ID.  Inside the script you may find
s:OuterFunc() or just OuterFunc() (esp. in Vim 9 script).
"[7]" indicates line 7 of the function.  To see what script line that is
you can go to the line where the function is defined with ":func" or
":def" and then go that many lines down: "7j".  When line continuation
is used it may be off by a few lines.  And line insert/delete need to be
taken into account.
For interactive debugging the "where" command can be used.  You need to
set a breakpoint or use ":debug command args".  See ":help debug-mode".
-- 
Why is it that pizza is made round, packed in a square box,
and eaten as a triangle?
 /// Bram Moolenaar -- Br...@Moolenaar.net -- 
http://www.Moolenaar.net   \\\
///                                                                      \\\
\\\        sponsor Vim, vote for features -- 
http://www.Vim.org/sponsor/ ///
 \\\            help me help AIDS victims -- 
http://ICCF-Holland.org    ///