Submitted: 2008/06/11.
Short description
Study/improve the techniques and tools available in the framework of
valgrind and apply to a big Ada based application.
Long description
Context
CFMU is making extensive use of Ada, including features such as Ada
tasking (i.e. multi-threading) and dynamic memory.
Valgrind is a framework in which various checking tools have been
developped for dynamic analysis. Among others:
- memcheck: checker for memory leak, dangling pointer, uninitialized
data;
- cachegrind/callgrind: tool to find where CPU is used;
- massif: tool to report about heap usage;
- omega: instant leak detector;
- helgrind: tool searching for data race condition access;
- drd: similar to helgrind.
Objective of the work
Study and compare the various tools available around a certain class of
problem, see how they are implemented in valgrind, and apply/experiment
with these tools in the CFMU environment.
CFMU is currently routinely using memcheck and callgrind. It might be
more interesting to look at other tools to see how well they work. The
data race condition checking tools are probably the most interesting to
look at (two different algorithms with their advantages and
disadvantages).
A possible approach
The tools and how they work could be looked at and evaluated gradually:
- First on some very small executable tests: the ACATS tests (these
are the standardized tests used for Ada compiler conformity
checking). Running the ACATS tests under memcheck has already been
done. These tests can be used for a first evaluation of other
valgrind tools.
- Afterwards, running these tools on the CFMU "unit test programs".
- Finally, running these on the complete application.
Based on the findings of the above and on the study of the tools,
algorithms, etc. it is probably possible to describe, compare, evaluate
the advantages and disadvantages of the various tools and/or suggest
improvements to the tools and/or implement them and/or suggest
improvements about how to use these tools in CFMU.
Some practical details
- The student should be a member of the ECAC or Eurocontrol member
states.
- Duration: the order of magnitude is a few person-months, to be
discussed.
- Start date, end date, full or part time: all to be discussed.
- Location: a significant part of the work (viz. running on the CFMU
unit tests and application) must be done in the CFMU premises in
Brussels.
- A working knowledge of English is preferable, a working knowledge
of French is acceptable.
- Profile: the following knowledge/experience is desirable:
- Ada knowledge;
- C knowledge;
- some knowledge of valgrind and/or compiler related technology
(e.g. binary code translation techniques, run-time, ...);
- Linux knowledge (e.g. some shell scripting);
- techniques and concepts used in the various valgrind tools
(e.g. race condition detection algorithms).
- Eurocontrol provides some financial support for stagiaires
(including travel expenses at begin and end of trainership).
Precise details about all this to be provided later on.
Contact person
Philippe Waroquiers
philippe.waroquiers@eurocontrol.int
Rue de la Fusee 96
B-1130 Brussels
Tel.: +32-2-729.97.35
To the Ada-Belgium home page.
To the Ada-Belgium
Ada jobs page.
Last update: 2008/06/25.
Dirk Craeynest