(This news server sucks. I thought this thread had been abandoned and I
was going to let it go for another day, but lo and behold, old replies
show up in my newsreader -- when, I'm not sure, but surely not timely).
Nick said:
(I am not picking on you, but I am using your post as an example of
what I did/didn't ask for).
Joshua said:
I pulled this out from another thread as it seems to be a good
topic. As there was a bunch of hypothesizing going on about the
design of safety/life-critical systems in regards to how errors
("exceptions", tomatoe/tomato) are handled. At least one person
suggested that abort() constitutes a fail-fast
(seehttp://en.wikipedia.org/wiki/Fail-fast) design, which seems
completely wrong.
Is C++ used in life-critical systems? Expound please.
Non-C++-specific Question:
Recognizing that higher-level supervision (by other systems) is
surely a common design in critical systems, thatwithstanding, how
does any one specific program handle detected bugs (the program
itself detected a bug) at runtime in released software?
I've never worked on them,
OK. So you'll be doing more hypothesizing then I gather. I was
trying to curb more of that and get to the crux of the issue.
but the main school of thought for critical
systems is:
[snipped the detail of what is extraneous to the question asked]
seemed germane to me.
As I thought it might to a number of other posters to answer as he did,
so I tried to clarify.
I think the problem is your question is probably
unanswerable.
I know that it is answerable and I know where to get the answer. I could
have asked too abstractly though, a little bit intentionally so also,
because I wanted to get answers from anyone(s) that know this stuff like
the ABC's, and from what I've seen so far in response, those people don't
hang out in here, which I can understand having been an engineer in an
unrelated domain and regarding programming like a tool in a toolbox.
That is there is no general answer. If a genuine
programming bug has been detected there is little you can do but
terminate the current "transaction" as quickly as possible.
Can you give an example of that? This is an aside, but very interesting,
start a new thread and direct me to it please. In that new thread, you
will give an example of a bug, and.. whatever else. Have at it! (OK,
maybe it is not so off topic, but it looks like a "bookmark" of sorts to
me).
With some
processes this may not be satisfactory (eg. kill the program just
after you turned up the heat in a chemical reactor, or kill the
process that flies the areoplane)
No hypothesizing please.
they really really shouldn't happen. Read up on the Ariane bug its
quite enlightening (once you get past the pontificating ("if they'd
use Blub this would never have happened!")). The space shuttle
software development process is quite interesting as well.
I am seeking first-hand knowledge and specifically tried to curb the "I
read about it, and it went like this..." kind of response. I want to know
from the guy who built that, not from the guy who wrote about it. I know
where to find the answer I seek, BTW, I am too busy to go off in that
direction right now though, so I asked here, and I knew soon after I
posted the OP that this was the wrong place to ask the question. It's not
a (direct) programming language question.
I don't see why. What is clearer than "terminate immediatly"?
Have you seen the movie "The Terminator"?
"never test for an error you can't handle"
You must be quoting other people, because that doesn't sound like my
thoughts. Your dogmatic quote though does hint toward the "domain" of the
answer to the OP though, I think.
Well said(?).