Debugging the Core Dump

All software systems sometimes crash. Certainthe problem, but all functions found in the core dump
software languages leave behind a core dump - anmust be looked at. The programmer starts at the
image of the state of the program when it wentend-point and will work his way back from there. He
wrong - allowing programmers to debug the programwill find out which function called what other functions.
and find the fault. We must examine our own coreEventually he'll find the function that didn't work as it
dumps if we wish to improve ourselves.should have. Most often, the function at fault is some
When everything is working you don't think aboutlittle piece of code that someone wrote but thought so
self-improvement. This makes sense because you'retrivial that he thought it didn't need testing. Furthermore,
happy, everything is as it should be, so why stop andthe function at fault is often relied upon by many
think. If it ain't broke, don't fix it. We only think aboutothers functions of the program.
improving our self in some way when we know thereSo how does this relate to real people? The term
is something wrong. But it's no good just thinking that"core dump" is not just some computer jargon. Before
we must change because something is not right: wecomputers, the term "core dump" meant 'complete
must think about what is wrong. We must look insideaccount of a human's knowledge on some subject'.
our self and examine our thoughts, behaviour, andWe all have a core dump. It's our brain, our thoughts,
aspirations. We must be critical. We must be honest.our emotions and our dreams. Of course, being human
When you fall down from some crisis in your life it isbeings, our core dumps are far more complex than
not enough to pick your self up, dust your self downany software written today.
and continue your journey. The software programTo examine your core dump you need to examine
contains a bug. Sooner or later, you're going to fallyour inner self. But how to find it? The answer is
down again. It does take strength to pick your self upprovided by the paragraph or so above: a core dump
each time, and one can applaud such strength, but weis 'an exact record of the state of the program as it
admire people who can learn, adapt and succeed fromwas when it crashed'. For human beings, 'exact record'
a personal crisis. But where do we begin to look forequates to honesty. Computers never lie: they report
answers: to learn lessons from our mistakes? Wethings as they are. You must not lie to your self. Begin
must look at our personal core dumps.by asking the question 'Why was I not happy?' Don't
In software a core dump is a computer binary leftgive an answer that you'd like to hear, or you feel will
behind on the operating system when a softwarelet you off the hook. Be critical and don't lie to yourself:
program stops running in some unexpected orfind the real answer. Once you have that answer then
catastrophic way. Software programmers examinelook further back. What led to this unhappiness? Again,
the binary to find the answer to why the programbe truthful. Keep going back until you can go no further.
malfunctioned. The reason a programmer finds theOnce there, you have found the malfunctioning
core dump so beneficial, is because the binary is an"function". Only when you've found the real problem
exact record of the state of the program as it wascan you begin to fix it. And just like a complex,
when it crashed. It also contains the history if themillion-line piece of code you'll probably find that fixing
program; the steps that caused it to crash. If somethat one small function will prove beneficial to many
function of the program isn't in the core dump, then itother parts of the system.
can be known for certain that the function didn't cause