[Issue 1001] print stack trace (in debug mode) when program die

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed May 26 05:41:38 PDT 2010


http://d.puremagic.com/issues/show_bug.cgi?id=1001


Don <clugdbug at yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |clugdbug at yahoo.com.au


--- Comment #23 from Don <clugdbug at yahoo.com.au> 2010-05-26 05:41:33 PDT ---
(In reply to comment #22)

> If a recursive function keeps calling itself, or two functions
> keep calling each other (other possibilities exist, but those two cover most
> cases), the stack trace can become too much long to print and read.
> 
> So just looking at the latest stack frame printed and penultimate stack frame
> printed it can compress it, reporting only how many time the last one or the
> last two ones are repeated (the uncompressed stack trace can be obtained too
> (on request if the compressed one is on default, otherwise it's the compressed
> one that's on request), that shows all the line numbers too).

That's what's done with the template instantiation backtraces in the compiler,
and I think it works very well. The basic idea is to always print out the first
few frames, and only start looking for recursion beginning at frame 3 or 4.
I intend to add something similar to the interpreter, so that we have a CTFE
stack trace. Still needs work though.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list