Debugging threads with HP Wilde Beest

Consider writing a recursive function in an iterative form, as sometimes an iterative
function demonstrates greater resource efficiency than a recursive function.
Minimize the size and number of the stack local variables to reduce the stack usage
of a thread.
Allocate large data items dynamically in a heap than in arrays to ensure that stack
utilization does not exceed the allocated or default percentage.
Appendix
Pertinent terms used throughout the white paper.
Backtrace Backtrace is a summary of proceeds of execution of the program which displays the
stack frame number and the function name output of the bt command.
Concurrency Concurrency is a concept where more than one thread performs different functions
simultaneously to complete the execution of the process at the earliest.
Core file Core file consists of information such as memory image of the address space of specific
processes, values of the process registers and the states of a specific program. This file
is the result of an abnormally terminated program.
Debugging Debugging is to understand, identify, and fix errors in a program.
Heap Heap is a large pool of memory from which dynamic memory allocations are done for
program elements such as large arrays, structures, or classes.
Multi-threaded application
Multi threaded applications consist of multiple threads sharing resources with each
other.
Parallelism Parallelism is a concept where more than one thread performs the same function
simultaneously to complete the execution of the process at the earliest.
Process Process is an instance of a program in execution. It provides an environment for the
execution of the threads within. The environment consists of details such as process
identification details, working directory, an address space and system resources such
as file descriptors, signal actions, shared libraries, and shared memory.
Pthreads
POSIX is a standard that defines Application Programming Interface to create and
manipulate threads. POSIX Threads is a POSIX standard for Threads. Libraries that
implement POSIX threads are named Pthreads.
Segmentation
faults
When a program attempts to access a memory location in an improper way, the error
condition is called Segmentation fault. In addition, attempts to access a memory location
to which the access is denied also results in segmentation fault.
Shared
memory
Shared memory is the segment of memory that is accessed by multiple programs to
establish quick communication among them.
Stack Stack is an abstract data structure that stores temporary information in sequential set of
memory addresses.
Stack frames Stack frames are machine dependent data structures in call stack that have data pertaining
to the execution state of a function.
Stack
overflows
Stack overflow is a condition where more than the determined amount of memory is
used on the call stack. This results in program crash.
Appendix 45