I realise I'm a bit late to the party, but I was trying to find a solution to this and realise others may have the same needs I do. Neither answer was quite what I wanted. I wanted to create a useful descriptor for where an error has occured so that in a deployed program I can trace back in the source code. Here's a crude testfunc to evaluate what each method returns
function testfunc()
display(['What we see the in parent function when using mfilename is:',mfilename])
st = dbstack;
display(['What we see the in parent function when using dbstack.name is:',st.name])
subfunc()
function subfunc()
display(['What we see inside the sub-function when using mfilename is:',mfilename])
st = dbstack;
display(['What we see the in sub-function when using dbstack.name is:',st.name])
display(['What we see the in sub-function when using dbstack(1).name is:',st(1).name])
Then run the following command
the command window returns:
What we see the in parent function when using mfilename is:testfunc
What we see the in parent function when using dbstack.name is:testfunc
What we see inside the sub-function when using mfilename is:testfunc
What we see the in sub-function when using dbstack.name is:subfunctestfunc
What we see the in sub-function when using dbstack(1).name is:subfunc
For my particular purpose the best solution is to return each element in the stack seperately, using the first entry db(1).name for the error dialogue title and for teh message body building a string from db(2:end).name with a useful seperator between
0 Comments
Sign in to comment.