StackDump dump;
dump.Walk(5); // don't show OnAssert() call itself
- const wxString& stackTrace = dump.GetStackTrace();
+ wxString stackTrace = dump.GetStackTrace();
+
+ // don't show more than maxLines or we could get a dialog too tall to be
+ // shown on screen: 20 should be ok everywhere as even with 15 pixel high
+ // characters it is still only 300 pixels...
+ const int maxLines = 20;
+ int count = stackTrace.Freq(wxT('\n'));
+ if (count > maxLines)
+ {
+ int i;
+ for (i = 0; i < count - maxLines; i++)
+ stackTrace = stackTrace.BeforeLast(wxT('\n'));
+ }
if ( !stackTrace.empty() )
{
msg << _T("\n\nCall stack:\n")