[ltt-dev] UST simple example not working

Mathieu Desnoyers compudj at krystal.dyndns.org
Mon Jun 21 12:12:17 EDT 2010


* George Stephen-RVGG20 (RVGG20 at freescale.com) wrote:
> Hello,
> 
>  
> 
> I tried this simple example for trace_marker and get incorrect values
> for  "return" in "ust.factorial" (return: 0). 
> 
> The trace for "ust.args" works. I even tried this in a C version of the
> sample with same  errors.
> 
> Using g++ -o sample -g  -lust sample.cpp; usttrace ./sample on a PowerPC
> target. 
> 
>  
> 
> class Factorial1 : public Factorial
> 
> {
> 
> public:
> 
>                 Factorial1(){}
> 
>                 virtual ~Factorial1(){}
> 
>                 unsigned long long do_factorial(unsigned long long n)
> 
>                 {              
> 
>                                 // user space trace instrumentation
> 
>                                 trace_mark(ust, args, "in_arg %d", n);
> 
>                                 if (n <= 1)
> 
>                                                 return 1;
> 
>                                 else
> 
>                                                 return n *
> do_factorial(n-1);
> 
>                 }
> 
> };
> 
>  
> 
> class Factorial2 : public Factorial
> 
> {
> 
> public:
> 
>                 Factorial2(){}
> 
>                 virtual ~Factorial2(){}
> 
>                 unsigned long long do_factorial(unsigned long long n)
> 
>                 {
> 
>                                 unsigned long long ret = 1;
> 
>                                 for ( int i = 1; i <= n; i++){
> 
>                                                 ret *= i;
> 
>                                 }
> 
>                                 // user space trace instrumentation
> 
>                                 trace_mark(ust, factorial, "in_arg %d
> return %d", n, ret);                              


Do you really have a '\n' in your format string ? This might be causing
your trouble.

Mathieu

> 
>                                 return ret;
> 
>                 }
> 
> };
> 
>  
> 
> In another case I tried just: trace_mark(ust, factorial, "return %d",
> ret) and the value for ret was the value for n.
> 
>  
> 
> Thanks for the help,
> 
> Stephen G.
> 
>  
> 
>                                 
> 
>  
> 
>  
> 
>    
> 

> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev


-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com




More information about the lttng-dev mailing list