tsp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Tsp-devel] suppression des STRACE_IO


From: eric.noulard
Subject: [Tsp-devel] suppression des STRACE_IO
Date: Tue, 4 Apr 2006 15:00:24 +0100

Est-ce que quelqu'un voit un inconvénient à la
suppression des STRACE_IO.

Je trouve que finalement ça alourdi le code et c'est
peu utile?
(même si je trouvais l'idée très bonne au départ soyions clairs)

D'autant que suite à une échange de mail avec Fred avec GCC on
a d'autres moyens de tracer les appels de fonctions:

http://en.wikipedia.org/wiki/Performance_analysis
 et notamment l'option: -finstrument-functions

cf 
http://gcc.gnu.org/onlinedocs/gcc-4.0.2/gcc/Code-Gen-Options.html#Code-Gen-Options
>>>>>>>>>
-finstrument-functions
    Generate instrumentation calls for entry and exit to functions. Just after 
function entry and just before function exit, the following profiling functions 
will be called with the address of the current function and its call site. (On 
some platforms, __builtin_return_address does not work beyond the current 
function, so the call site information may not be available to the profiling 
functions otherwise.)

              void __cyg_profile_func_enter (void *this_fn,
                                             void *call_site);
              void __cyg_profile_func_exit  (void *this_fn,
                                             void *call_site);
         

    The first argument is the address of the start of the current function, 
which may be looked up exactly in the symbol table.

    This instrumentation is also done for functions expanded inline in other 
functions. The profiling calls will indicate where, conceptually, the inline 
function is entered and exited. This means that addressable versions of such 
functions must be available. If all your uses of a function are expanded 
inline, this may mean an additional expansion of code size. If you use `extern 
inline' in your C code, an addressable version of such functions must be 
provided. (This is normally the case anyways, but if you get lucky and the 
optimizer always expands the functions inline, you might have gotten away 
without providing static copies.)

    A function may be given the attribute no_instrument_function, in which case 
this instrumentation will not be done. This can be used, for example, for the 
profiling functions listed above, high-priority interrupt routines, and any 
functions from which the profiling functions cannot safely be called (perhaps 
signal handlers, if the profiling routines generate output or allocate memory). 
>>>>>>>>>>
---
Eric Noulard - Software Architect 
BT Consulting & Systems Integration
tel: (+33) (0)534 604970
mob: (+33) (0)607 948100
web: www.bt.com/consulting






reply via email to

[Prev in Thread] Current Thread [Next in Thread]