The code should be trivial to port to any machine with a GNU C compiler and Sys V type shared memory. In an earlier article, I described the advantages of using a Source Code Unix for embedded products. See my March 1999 article, Embedding Source Code Unix in the Product. In this article, and successor articles, I'll share a number of design and coding methodologies that I have found successful. A multi-tasking system often has complicated behavior.
Various processes react to outside stimuli and internal interprocess communication.
Tracing the system's activity is difficult when everything is working, and even harder during the development cycle when components aren't fully functional. The software in this article is designed to track what is happening when the system is running, both during development and during product deployment. The basic concept is that we wish to have control over the amount of logging data generated and present that information to the user in chronological order. During a debug cycle, we want to be able to increase the detail of logging in certain areas and decrease the detail in other areas. Low overhead so as to not skew what is being measured.