crash on system with maybe broken timers

stefan@franke.ms stefan@franke.ms
Mon Apr 18 18:58:04 GMT 2022


I just faced an issue, which I fixed locally, which happened while debugging
a remote target with an inaccurate timer.

 

What's happening is:

 

 

toplev::~toplev () calls g_timer->print (stderr);

 

timer::print (FILE *fp) calls validate_phases(fp);

 

timer::validate_phases (FILE *fp) const calls gcc_unreachable ();

 

gcc_unreachable () calls (fancy_abort (__FILE__, __LINE__, __FUNCTION__))

 

fancy_abort (const char *file, int line, const char *function) calls
internal_error ("in %s, at %s:%d", function, trim_filename (file), line);

 

internal_error (const char *gmsgid, ...) calls report_diagnostic
(&diagnostic);

 

diagnostic_report_diagnostic (diagnostic_context *context, diagnostic_info
*diagnostic) calls pp_format (context->printer, &diagnostic->message);

 

. I stop here, and you can see why it crashes;

 

context->printer was closed before entering the destructor of toplev in
toplev::main

 

  diagnostic_finish (global_dc);

 

 

maybe someone wants to fix this.

 

 

Stefan

 

 



More information about the Gcc-help mailing list