The Alamo Project
Romanian translation by Alexandra Seremina
The Alamo Project is an investigation into language support for program
execution monitoring. Because execution monitors are low-level tools with
stringent performance requirements, they are difficult to write. Alamo
reduces this difficulty by providing an execution model, run-time system
support, and configurable automatic software instrumentation tools. Reducing
the difficulty of writing monitors increases their rate of development
and allows experimental techniques such as program visualization to be
Alamo stands for A Lightweight Architecture for MOnitoring. The core ideas
of Alamo were implemented first for the Icon Programming language; this
implementation is described in a book published by
Springer Verlag, Program Monitoring and Visualization: an Exploratory
Approach. Current research has broadened this work to include
lower-level languages, in particular, ANSI C.
The Alamo C framework's status is: the Alamo Monitor Executive, AME, is
implemented and runs on Sparc Solaris and Linux x86 ELF platforms. The
Configurable C Instrumentation tool is implemented, but requires some
further enhancements to be used on real programs. So far CCI provides a
comprehensive basis set of events, as well as configuration facilities that
allow selection and refinement of events based on values determinable at
compile-time. CCI is missing support for about three features of ANSI C,
and needs further testing. The combined Alamo system is in a pre-alpha
state; simple textual and 3D graphical (OpenGL) monitors have been
You can now download our software from here (gzipped
tar file). The software was made to compile and link on Solaris 2.8 on
11/4/2000 but is not production code! Don't expect it to work! At all!
Cursory testing indicated that it had less bitrot than expected, but that
does not mean it is functional. Hopefully it will give some of you ideas.
Feel free to ask questions and contribute bugfixes. I may or may not have
any answers or be able to support your intended use.
Publications and Technical Reports
- The Alamo architecture is described in
The Alamo Execution Monitor Architecture.
This paper was presented in the 1999 Workshop on Logic Programming
Environments in Las Cruces, and published in
Electronic Notes in Theoretical Computer Science vol. 30 no. 4.
This is a PDF document made by Adobe Acrobat Distiller 4.0; it
views OK, but only prints OK on non-postscript printers
as far as I know; presumably an Adoba Acrobat Distiller bug.
- An overview of Alamo is described in
A Lightweight Architecture for Program
A revised version of this paper was presented in the ACM
Workshop on Program Analysis for Software Tools and Engineering,
PASTE'98 and published in SIGPLAN Notices,
vol. 33 no 7, July 1998.
- The CCI component of Alamo is the subject of a focused paper entitled
A Configurable Automatic Instrumentation Tool
for ANSI C.
A revised version of this paper was presented at the IEEE
International Conference on Automated Software Engineering,
Honolulu during October 1998.
- An Overview of the Alamo Monitor Executive
is available in HTML, written by Wenyi Zhou, who implemented it.
- One component of the AME that is described in HTML format is
Target Program State Access in the Alamo Monitor Framework
- Wenyi Zhou's M.S. thesis (PDF) describes the AME in
glorious detail: dynamic loading of ELF objects, the shared-address
co-routine execution model, and everything.
- Kevin Templer's M.S. thesis describes the design
and implementation of the Configurable C Instrumentation Tool.
- An HTML document describing Michael Brazell's OpenGL-based Alamo
execution monitor is available, titled
Tree Structure Detection and Visualization
A few slides from an overview talk on Alamo are