1.5 Troubleshooting Commercial Products
In today’s ever growing enterprise market, Linux is making a very real impact. A key to this impact is the availability of large scale software products such as database management systems, Web servers, and business solutions systems. As more companies begin to examine their information technology resources and spending, it is inevitable that they will at the very least consider using Linux in their environments. Even though there is a plethora of open source software available, many companies will still look to commercial software to provide a specific service or need.
With a rich problem determination and debugging skill set in-house, many problems that typically go to a commercial software vendor for support could be solved much faster internally. The intention of this book is to increase that skill set and give developers, support staff, or anyone interested the right toolkit to confidently tackle these problems. Even if the problem does in fact lie in the commercial software product, having excellent problem determination skills will greatly expedite the whole process of communicating and isolating the problem. This can mean differences of days or weeks of working with commercial software support staff.
It is also extremely important to read the commercial software’s documentation, in particular, sections that discuss debugging and troubleshooting. Any large commercial application will include utilities and built-in problem determination facilities. These can include but are certainly not limited to:
Dump files produced at the time of a trap (or set of predefined signals) that include information such as:
a stack traceback
contents of system registers at the time the signal was received
operating system/kernel information
process ID information
memory dumps of the software’s key internal data structures
and so on
Execution tracing facilities
Diagnostic log file(s)
Executables to examine and dump internal structures
Becoming familiar with a commercial product’s included problem determination facilities along with what Linux offers can be a very solid defense against any software problem that may arise.