I've always remembered it as the simulator panicking when something unexpected happens, definitely not including user error, and fatal is the other one. I almost always use panic because I don't deal with user input and configuration that much, although putting in more of that is part of what I'll be doing before pushing my x86 stuff. I don't like to use fatal because it makes figuring things out in gdb harder. I don't remember exactly why, but panic stops gdb immediately and fatal finishes out the program and quits which makes it a lot harder to examine what actually happened. I don't remember the specifics of any time that was a problem since I think it was a while ago, but if there are more detailed messages from fatal it might not be as big of an issue.

As far as the links to the wiki, I think some form of that would be a good idea. The message should be descriptive, but if there was a page with a somewhat detailed description of what m5 is complaining about, why it might have happened, and some things to try to fix it (not it for writing all that), that would probably help people a lot.

Gabe

Ali Saidi wrote:

On May 28, 2008, at 11:23 AM, nathan binkert wrote:

panic() -- An assert that isn't compiled out
fatal() -- some configuration parameter caused a problem
Ok, I thought so.  Do we want to keep these names?  I will promise
that I have learned finally, but the names seem a bit to synonymous to
me.  I will go through my code and convert the proper things to fatal
since I am at fault for not doing this correctly.  Does everyone else
seem to do this stuff correctly, or should we go through more of them?
I just learned them and they make sense to me.


I would also like to add an option to allow panic and fatal (or
whatever their replacements) to raise exceptions into the python so we
can get a stack trace.  I don't know if this influences any thoughts
on this.
I spent some time trying to do this, if you remember.I never got it to work correctly from inside of m5, but perhaps someone else would have better luck.



Can't we make the error messages themselves descriptive, rather than
requiring a two step process?
Well, something like the stat check error needs more description, and
a link to the wiki page would be useful.  We could do it only for the
error messages that are necessary of course, but it seems that some of
the error messages should have a lot more information.

Most of these errors panic in the c++ and call _exit(). I don't think people
are seeing python error messages that often.
I think some of the configuration script things could be trapped in python.
I don't know if it's worth spending time adding more indirection to the error path so python can print an error. If the error is fatal python isn't going to be able to correct it and continue.

Ali

_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to