[lttng-dev] (no subject)

Suchakrapani Datt Sharma suchakrapani.sharma at polymtl.ca
Tue Jan 21 21:30:01 EST 2014


I did not try to look into httpd as you require but here are some pointers.

Quoting Mehran Khan <i at mehrankhan.com>:

---------------- SNIP ------------------
> 3. Then, I put the *smallestTracePoint.h* and *smallestTracePoint.c* in
> *httpd-2.4.7/server* directory,
> included  *smallestTracePoint.h *in the *main.c  *file and added trace
> points in the int *main(int argc, const char * const argv[])* and
> **init_process(int
> *argc, const char * const * *argv)* functions.

Did you do a #define TRACEPOINT_DEFINE in main.c and also include your

> 4. Then I added *-finstrument-functions* in the *configure* file (Line
> number 2830) in the extracted *httpd-2.4.7* directory, full line below
>   ac_compile='$CC -c $CFLAGS -finstrument-functions $CPPFLAGS
> conftest.$ac_ext >&5'

I do not know why -finstrument-functions is required here. Its independent of
lttng tracepoints afaik.

> 5. Then, from the /httpd-2.4.7 directory, I ran the following command to
> configure the installation, it completed without any error.
>     ./configure --libdir=/usr/lib/usr/lib/liblttng-ust.so
> --with-included-apr

Why not export LDFLAGS='-llttng-ust' before configure or maybe add it in the
Makefile/Makefile.in whatever httpd uses.

> 6. When I ran the command 'make', I get the following error after a while
> ...
> make[1]: Entering directory `/root/httpd-2.4.7'
> /root/httpd-2.4.7/srclib/apr/libtool --silent --mode=compile gcc

---------------- SNIP ------------------

> /root/httpd-2.4.7/srclib/apr/libtool --silent --mode=link gcc -std=gnu99
> -g -O2 -pthread         -o httpd  modules.lo buildmark.o -export-dynamic
> server/libmain.la modules/core/libmod_so.la
> modules/http/libmod_http.laserver/mpm/event/
> libevent.la os/unix/libos.la -L/usr/lib/x86_64-linux-gnu -lpcre
> libexpat.la /root/httpd-2.4.7/srclib/apr/libapr-1.la -luuid -lrt -lcrypt
> -lpthread -ldl

I can't see -llttng-ust in the build command.

> I have tried including the *smallestTracePoint.c* file in the local
> makefile (*/root/httpd-2.4.7/MakeFile)*... didn't do me any good.
> Any idea what I am doing wrong ?

You definitely need to include this in the build but I don't think an auto
generated Makefile is a good place.

For your convenience, I instrumented thttpd here [1]. Its a tiny and fast web
server. There is 1 tracepoint in handle_newconnect() Have a look at
Makefile.in, thttpd_tp.c and thttpd_tp_provider.h

If you want generated traces, do let me know.

[1] http://suchakra.fedorapeople.org/lttng/thttpd-instrumented.tar.gz


More information about the lttng-dev mailing list