Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   C Programming (http://www.velocityreviews.com/forums/f42-c-programming.html)
-   -   Dynamic tracing of C code execution (http://www.velocityreviews.com/forums/t442724-dynamic-tracing-of-c-code-execution.html)

Nikhil 05-12-2006 04:50 PM

Dynamic tracing of C code execution
 
Hi,

I have a set of C source files and I need a tool which can add probes
and then dynamically trace the execution and print the results (The C
source code does not have any printf statements).

The purpose of the tool is to add test cases for unit testing and then
see the statement/branch coverage for them.

Thanks,

Nikhil


Vladimir Oka 05-12-2006 05:13 PM

Re: Dynamic tracing of C code execution
 
Nikhil opined:

> Hi,
>
> I have a set of C source files and I need a tool which can add probes
> and then dynamically trace the execution and print the results (The C
> source code does not have any printf statements).
>
> The purpose of the tool is to add test cases for unit testing and
> then see the statement/branch coverage for them.


I can't think of such a tool right now, but I do wonder how would it
know where to put "print" statements, and what to print out, without
heavy input from you? While specifying that, you might as well add
your own debug "print" statements, and guard them with `#ifdef`s so
they're only compiled in for debug/test purposes. As a bonus, you
won't be relying on a tool still being available (and supporting
whatever next platform you port to) sometime in the future.

--
Fatal Error: Found [MS-Windows] System -> Repartitioning Disk for
Linux...
(By cbbrown@io.org, Christopher Browne)

<http://clc-wiki.net/wiki/Introduction_to_comp.lang.c>


Michael Mair 05-12-2006 05:38 PM

Re: Dynamic tracing of C code execution
 
Vladimir Oka schrieb:
> Nikhil opined:
>
>>Hi,
>>
>>I have a set of C source files and I need a tool which can add probes
>>and then dynamically trace the execution and print the results (The C
>>source code does not have any printf statements).
>>
>>The purpose of the tool is to add test cases for unit testing and
>>then see the statement/branch coverage for them.

>
> I can't think of such a tool right now, but I do wonder how would it
> know where to put "print" statements, and what to print out, without
> heavy input from you? While specifying that, you might as well add
> your own debug "print" statements, and guard them with `#ifdef`s so
> they're only compiled in for debug/test purposes. As a bonus, you
> won't be relying on a tool still being available (and supporting
> whatever next platform you port to) sometime in the future.


You even can go one step further and
#ifdef TRACE_ON
# define TRACE_PRINT(a) fputs(a, TRACE_FILE)
#else
# define TRACE_PRINT(a)
#endif
There is also the ((....)) trick
#ifdef TRACE_ON
# define TRACE_PRINTF(a) fprintf a
#else
# define TRACE_PRINTF(a)
#endif
"called" via
TRACE_PRINTF((TRACE_FILE, formatstring, ....))


Cheers
Michael
--
E-Mail: Mine is an /at/ gmx /dot/ de address.

Walter Bright 05-13-2006 07:36 PM

Re: Dynamic tracing of C code execution
 
Nikhil wrote:
> Hi,
>
> I have a set of C source files and I need a tool which can add probes
> and then dynamically trace the execution and print the results (The C
> source code does not have any printf statements).
>
> The purpose of the tool is to add test cases for unit testing and then
> see the statement/branch coverage for them.


Here's a tool that will get you started:

http://www.digitalmars.com/ctg/trace.html

-Walter Bright
www.digitalmars.com C, C++, D programming language compilers

Ira Baxter 05-15-2006 11:12 PM

Re: Dynamic tracing of C code execution
 

"Nikhil" <n.barthwal@gmail.com> wrote in message
news:1147452639.394669.326010@y43g2000cwc.googlegr oups.com...
> Hi,
>
> I have a set of C source files and I need a tool which can add probes
> and then dynamically trace the execution and print the results (The C
> source code does not have any printf statements).
>
> The purpose of the tool is to add test cases for unit testing and then
> see the statement/branch coverage for them.


See the white paper, "TestCoverage.pdf" at
http://www.semanticdesigns.com/Products/TestCoverage
It explains how to use a program transformation tool
to insert probes in source code. The paper is focused
on probes for test coverage, but the ideas work for
any kind of probe.


--
Ira Baxter, CTO
www.semanticdesigns.com



Frank Pittel 05-16-2006 06:21 AM

Re: Dynamic tracing of C code execution
 
Nikhil <n.barthwal@gmail.com> wrote:
: Hi,

: I have a set of C source files and I need a tool which can add probes
: and then dynamically trace the execution and print the results (The C
: source code does not have any printf statements).

: The purpose of the tool is to add test cases for unit testing and then
: see the statement/branch coverage for them.

: Thanks,

: Nikhil

Use truss.
--




-------------------
Keep working millions on welfare depend on you


All times are GMT. The time now is 08:23 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.