Re: embedded dataflow tracking code?

Walter Banks <>
Fri, 30 Jul 2010 07:52:12 -0400

          From comp.compilers

Related articles
embedded dataflow tracking code? (Dennis Yurichev) (2010-07-24)
Re: embedded dataflow tracking code? (George Neuner) (2010-07-26)
Re: embedded dataflow tracking code? (Gene) (2010-07-26)
Re: embedded dataflow tracking code? (Tony Finch) (2010-07-27)
Re: embedded dataflow tracking code? (Walter Banks) (2010-07-30)
| List of all articles for this month |

From: Walter Banks <>
Newsgroups: comp.compilers
Date: Fri, 30 Jul 2010 07:52:12 -0400
Organization: Netfront
References: 10-07-030
Keywords: dataflow, debug
Posted-Date: 30 Jul 2010 10:49:46 EDT

Dennis Yurichev wrote:
> I would like to load debugger, attach to working process, and at
> some breakpoint, instead of numerical values in the CPU registers,
> I would like to see genesis of each value like "result of
> f(arg1, arg2,arg3) called at point X" or "result of comparison of
> values X and Y" and so on.
> Probably, compiler backend could embed some dataflow tracking code
> between basic blocks and store information about all variables flow
> in some separate data segment..
> Are there any known attempts or projects or...?

We implemented a messaging system between the compiler and
development environment in our source level debugging files. The
messages are similar to predefined breakpoints that have multiple
message types that that can be processed or not by the debug
environment. There are several things that we commonly use this
capability for. Messages may be compiler generated or user embedded
with pragma's

- Embedded print statements that can be displayed in the debug
    environment or routed to a log. The advantage is these print
    statements look like printf's but don't generate any application
    code. For embedded systems it is important to ship the code that
    was actually tested.

- Automatically generated compiler information on program structure.
    McCabe control points for example. This is similar to the op's
    requirement. Infact these could be filtered for function calls
    only by the debug environment.

- Links to regression test files as part of a function definition.
    This was part of an embedded system test system.

- Non code generating assert's

We use the same technology to export software interfaces between
processors used in our heterogeneous multiprocessor support.


Walter Banks
Byte Craft Limited

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.