[lttng-dev] liblttng-ust finalizer oddity

Thibault, Daniel Daniel.Thibault at drdc-rddc.gc.ca
Fri Mar 22 12:24:54 EDT 2013


   Below is an edited-for-brevity log that highlights an oddity of the liblttng-ust finalizer: it triggers a load and initialization of libgcc_s, but libgcc_s's finalizer doesn't run (I checked libgcc_s.so with readelf, and there is indeed a FINI entry in there).  Is this a feature of libgcc_s?  Of the Linux loader?  Or of LTTng?  Is it anything to worry about?

$ LD_DEBUG=libs LD_PRELOAD=.libs/liblttng-ust-provider-ust-tests-demo.so:.libs/liblttng-ust-provider-ust-tests-demo3.so ./demo
       805:	find library=libdl.so.2 [0]; searching
       805:	 search cache=/etc/ld.so.cache
       805:	  trying file=/lib/x86_64-linux-gnu/libdl.so.2
       805:	
       805:	find library=libc.so.6 [0]; searching
       805:	 search cache=/etc/ld.so.cache
       805:	  trying file=/lib/x86_64-linux-gnu/libc.so.6
       805:	
[...]
       805:	calling init: .libs/liblttng-ust-provider-ust-tests-demo.so
       805:	
       805:	
       805:	initialize program: ./demo
       805:	
       805:	
       805:	transferring control: ./demo
       805:	
Demo program starting.
Tracing...  done.
       805:	
       805:	calling fini: ./demo [0]
       805:	
       805:	
       805:	calling fini: .libs/liblttng-ust-provider-ust-tests-demo.so [0]
       805:	
       805:	
       805:	calling fini: .libs/liblttng-ust-provider-ust-tests-demo3.so [0]
       805:	
       805:	
       805:	calling fini: /lib/x86_64-linux-gnu/libdl.so.2 [0]
       805:	
       805:	
       805:	calling fini: /home/daniel/Documents/lttng-ust-2.1.1+-08a3170/liblttng-ust/.libs/liblttng-ust.so.0 [0]
       805:	
       805:	find library=libgcc_s.so.1 [0]; searching
       805:	 search path=/home/daniel/Documents/lttng-ust-2.1.1+-08a3170/liblttng-ust/.libs		(RPATH from file .libs/liblttng-ust-provider-ust-tests-demo.so)
       805:	  trying file=/home/daniel/Documents/lttng-ust-2.1.1+-08a3170/liblttng-ust/.libs/libgcc_s.so.1
       805:	 search path=/home/daniel/Documents/lttng-ust-2.1.1+-08a3170/liblttng-ust/.libs		(RPATH from file .libs/liblttng-ust-provider-ust-tests-demo.so)
       805:	  trying file=/home/daniel/Documents/lttng-ust-2.1.1+-08a3170/liblttng-ust/.libs/libgcc_s.so.1
       805:	 search cache=/etc/ld.so.cache
       805:	  trying file=/lib/x86_64-linux-gnu/libgcc_s.so.1
       805:	
       805:	
       805:	calling init: /lib/x86_64-linux-gnu/libgcc_s.so.1
       805:	
       805:	
       805:	calling fini: /home/daniel/Documents/lttng-ust-2.1.1+-08a3170/liblttng-ust/.libs/liblttng-ust-tracepoint.so.0 [0]
       805:	
       805:	
       805:	calling fini: /lib/x86_64-linux-gnu/librt.so.1 [0]
       805:	
       805:	
       805:	calling fini: /usr/local/lib/liburcu-bp.so.2 [0]
       805:	
       805:	
       805:	calling fini: /usr/local/lib/liburcu-cds.so.2 [0]
       805:	
       805:	
       805:	calling fini: /lib/x86_64-linux-gnu/libpthread.so.0 [0]
       805:	

Daniel U. Thibault
R & D pour la défense Canada - Valcartier (RDDC Valcartier) / Defence R&D Canada - Valcartier (DRDC Valcartier)
Cyber sécurité pour les missions essentielles (CME) / Mission Critical Cyber Security (MCCS)
Protection des systèmes et contremesures (PSC) / Systems Protection & Countermeasures (SPC)
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