[lttng-dev] Instrumenting a module?

Thibault, Daniel Daniel.Thibault at drdc-rddc.gc.ca
Wed Feb 12 10:41:15 EST 2014


   Further update.  So far I can make plain payload fields and static array payload fields.  But I can't make dynamic array fields (same problem as with strings, I'm sure, since a string is just a dynamic array of char).

   The tracepoint:

TRACE_EVENT(hello_exit,
   TP_PROTO(int * intarr, unsigned short len),
   TP_ARGS(intarr, len),
   TP_STRUCT__entry(
      __dynamic_array(int, anarray, len)
   ),
   TP_fast_assign(
      memcpy(__entry->anarray, intarr, len*sizeof(int));
   ),
   TP_printk(
      "%s", "printk says bye"
   )
);

   The TP_fast_assign of the lttng-module version uses:
tp_memcpy(anarray, intarr, len*sizeof(int))

   The make of the module calling trace_hello_exit() says:

make -C /lib/modules/3.2.0-53-virtual/build M=/home/daniel/Documents/mymodule modules
make[1]: entrant dans le répertoire « /usr/src/linux-headers-3.2.0-53-virtual »
  CC [M]  /home/daniel/Documents/mymodule/hello.o
In file included from include/trace/ftrace.h:567:0,
                 from include/trace/define_trace.h:86,
                 from include/trace/events/hello.h:130,
                 from /home/daniel/Documents/mymodule/hello.c:5:
include/trace/events/hello.h: In function 'ftrace_raw_event_hello_exit':
include/trace/events/hello.h:87:1: erreur: 'struct ftrace_raw_hello_exit' has no member named 'anarray'
In file included from include/trace/ftrace.h:774:0,
                 from include/trace/define_trace.h:86,
                 from include/trace/events/hello.h:130,
                 from /home/daniel/Documents/mymodule/hello.c:5:
include/trace/events/hello.h: In function 'perf_trace_hello_exit':
include/trace/events/hello.h:87:1: erreur: 'struct ftrace_raw_hello_exit' has no member named 'anarray'
make[2]: *** [/home/daniel/Documents/mymodule/hello.o] Erreur 1
make[1]: *** [_module_/home/daniel/Documents/mymodule] Erreur 2
make[1]: quittant le répertoire « /usr/src/linux-headers-3.2.0-53-virtual »
make: *** [all] Erreur 2

   Why was perf dragged into this?  The __string attempt only had an ftrace failure.

   Please help untangle this.

Daniel U. Thibault
Protection des systèmes et contremesures (PSC) | Systems Protection & Countermeasures (SPC)
Cyber sécurité pour les missions essentielles (CME) | Mission Critical Cyber Security (MCCS)
R & D pour la défense Canada - Valcartier (RDDC Valcartier) | Defence R&D Canada - Valcartier (DRDC Valcartier)
2459 route de la Bravoure
Québec QC  G3J 1X5
CANADA
Vox : (418) 844-4000 x4245
Fax : (418) 844-4538
NAC : 918V QSDJ <http://www.travelgis.com/map.asp?addr=918V%20QSDJ>
Gouvernement du Canada | Government of Canada
<http://www.valcartier.drdc-rddc.gc.ca/>



More information about the lttng-dev mailing list