-----Message d'origine-----
De : Woegerer, Paul [mailto:[email protected]] 
Envoyé : 2 octobre 2013 03:38

> The 64-bit version of lttng-tools works just fine with both, 32-bit and 
> 64-bit userspace applications. No need to compile it as 32-bit variant.
> Instrumented 32-bit applications automatically use the 32-bit lttng-consumerd 
> (from the lttng-ust 32-bit build), instrumented 64-bit 
> applications automatically use the 64-bit lttng-consumerd (from the lttng-ust 
> 64-bit build).

   But lttng-consumerd is in the lttng-tools package, not lttng-ust ?!  This 
prevents my lttng-sessiond from using a 32-bit lttng-consumerd, as you'll see 
below.

> BTW, when you compile for the "-m32" multilib, it's better to use the 
> following:
> $ ./configure CC="gcc -m32"
> This way also the linking steps (performed by libtool) of your build will 
> know that you are building for m32 (on your x86_64 system) and you don't need 
> e.g. "--libdir ....".

   That's what I did, but I still felt I needed to specify libdir so the 
install did not overwrite the 64-bit libraries (liblttng-ctl.so, 
liblttng-ust.so, etc.).

> For more information see:
> http://doc.opensuse.org/documentation/html/openSUSE/opensuse-reference/cha.64bit.html#sec.64bit.biarch
> or
> https://developer.mozilla.org/en/docs/Compiling_32-bit_Firefox_on_a_Linux_64-bit_OS

   I have seen the second one, which was moderately useul.  I'll look into the 
first one, thanks.

> > More generally, how does one add tracepoints to a 32-bit application 
> > running on a 64-bit system?
>
> You simply compile your instrumented application to 32-bit the same way you 
> did it for the lttng-ust package (CC="gcc -m32").
>
> Paul Woegerer, SW Development Engineer

   Indeed, once lttng-ust has been done in 32-bits, I can use the 'make 
static32' I quoted at the beginning of the thread like this:

$ LDFLAGS=-L/usr/local/lib32 make static 32

   And then run the sample app like this:

$ LD_PRELOAD=/usr/local/lib32/liblttng-ust.so ./sample_static32

   (I could dump the LD_PRELOAD by adding /usr/local/lib32 to my PATH)

   But my running lttng-sessiond (enable-event -u -a) complains:

Error: Consumer socket fd -1 not found in consumer obj 0x7ffd4000b650

   My guess is I'll need to launch lttng-sessiond with the -u and -U options to 
point it to the 32-bit lttng-consumerd...Once I can get the 32-bit lttng-tools 
to compile and install it.

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/>

_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to