Commit Graph

79 Commits

Author SHA1 Message Date
Daniel Gollub 023733eb39 [CMAKE]: CMake Build Env patches for pahole/dwarves
This is used to let cmake know that's only C project, and it shouldn't check
for C++ compiler - shrinks the build requirements ;)

+INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR} )

This one allows to make out of sourcetree builds...

Signed-off-by: Daniel Gollub <dgollub@suse.de>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2007-12-03 14:43:49 -02:00
Arnaldo Carvalho de Melo 390e2c64f4 [CTRACER]: Implement support for blacklisting CUs
In the Linux kernel, currently the only target, we can't probe the
functions in kernel/{kprobe,relay}.c.

When systemtap starts supporting uprobes, there may be other cases that
require blacklisting CUs.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2007-11-17 18:10:58 -02:00
Eduardo Habkost 15c6f261b6 [CMAKE] Define _GNU_SOURCE on CMakeLists.txt
The latest elfutils-libelf headers won't compile without _LARGEFILE64_SOURCE
(that is implied by _GNU_SOURCE).

Some .c files don't have a #define _GNU_SOURCE line. Instead of adding the line
to all .c files, define it globally on CMakeLists.txt.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
2007-10-26 13:21:31 -02:00
Ademar de Souza Reis Jr 7657ad696d [CMAKE]: fix ostra-cg install mode
ostra-cg is a script and should be installed as
PROGRAM, otherwise it doesn't receive the exec bits.

Signed-off-by: Ademar de Souza Reis Jr <ademar@mandriva.com.br>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
2007-08-14 11:33:54 -03:00
Arnaldo Carvalho de Melo 1d53d3640f [CMAKE]: Remove the Sqlite requirement
It'll only be needed when szhist gets merged.

Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
2007-06-13 09:12:44 -03:00
Arnaldo Carvalho de Melo 1382ee83da [SYSCSE]: System Call Sign Extender
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2007-06-12 15:53:46 -03:00
Arnaldo Carvalho de Melo 53f1dc9860 [RPM]: 1.0, finally!
Fixing problems found in the fedora packaging review. There are still problems,
but lets get what works out of the door so that it gets into a distro and we
can see what is more important to work on from now on.

The OLS paper will be included as soon as it is published by the OLS organizers.

Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
2007-05-22 13:51:58 -03:00
Arnaldo Carvalho de Melo fbb50fc851 [LIB]: Move class__reorganize & friends to a new lib: libdwarves_reorganize
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
2007-05-07 00:30:02 -03:00
Arnaldo Carvalho de Melo 05351ece16 [LIB]: Move the __emit functions to a separate library, libdwarves_emit
To isolate functionality only used in utilities such as ctracer.

Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
2007-05-06 14:50:28 -03:00
Arnaldo Carvalho de Melo ee12d416f3 [CMAKE]: Allow specifying CMAKE_BUILD_TYPE
Defaults to "Debug", but the rpm will use "MinSizeRel"

Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
2007-04-26 11:02:20 -03:00
Arnaldo Carvalho de Melo 19ca955ec6 [CMAKE]: Make the default install prefix be /usr/local
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
2007-04-19 18:01:47 -03:00
Diego "Flameeyes" Pettenò c8054ae5e8 [CMAKE]: Link libdwarves only to libdw
And let the final binaries get it from that. Fixes building with
-Wl,--as-needed

Signed-off-by: Diego "Flameeyes" Pettenò <flameeyes@gmail.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
2007-03-28 10:18:57 -03:00
Arnaldo Carvalho de Melo 0a65e24cae [CMAKE]: Just convert the commands to lowercase
Its case insensitive, so why have it screaming? :)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2007-02-25 16:43:59 -03:00
Arnaldo Carvalho de Melo ce9d7e11fe [CTRACER]: Lots of improvements
1. We now use relayfs
2. ostra-cg is shipped and used in the Makefile
3. README.ctracer has all the details

I followed README.ctracer and the result, in my workstation, was this one:
http://oops.ghostprotocols.net:81/acme/dwarves/callgraphs/acme_eating_his_dog_food/6.html

I've started on the 6th page as it is more interesting, having tcp and netlink
callchains, don't be disappointed by some pages having just one level of
nesting, that is just the lack of containers and aliases (to follow tcp_sock,
skb->sk, etc) from the OSTRA days, but it's getting there! :-)

Ah, it is collecting all the base types in the specified struct by doing a
struct "view", i.e. trimming the struct to have just members that are
"reducible" to basic types (int, long, char, signed and unsigned), then
reorganizing it with the code introduced in pahole --reorganize to get it to
the best layout possible, reducing the size of the entry probe points trace
entries.

Updated rpms are available at the usual place:

http://oops.ghostprotocols.net:81/acme/dwarves/rpm/

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2007-02-02 15:15:27 -02:00
Arnaldo Carvalho de Melo b7cad1782d [RPM]: Release 13
Adding pglobal and the latest advancements in pahole --reorganize.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2007-02-02 12:30:56 -02:00
Davi Arnaut 4ab3403e3b [LIB]: Add initial support for DW_AT_location, in variables
And use it in a new tool, pglobal, that shows global variables and functions.

Signed-off-by: Davi Arnaut <davi@haxent.com.br>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2007-02-02 11:56:53 -02:00
Arnaldo Carvalho de Melo 26c1474b61 [CMAKE/RPM]: Fix build for x86-64
RPMS for FC6 x86-64 are available at:

http://oops.ghostprotocols.net:81/acme/dwarves/rpm/x86-64/

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2007-01-30 19:07:28 -02:00
Arnaldo Carvalho de Melo 9555603666 [RPM]: 9th release
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2007-01-27 19:42:54 -02:00
Arnaldo Carvalho de Melo fab0db03ea [PDWTAGS]: New tool
Pretty prints all of the tags, still needs a bit more work.

Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
2007-01-18 21:13:56 -02:00
Arnaldo Carvalho de Melo c916ae4a99 [CMAKE]: Add the INSTALL rules
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
2007-01-11 16:41:54 -02:00
Arnaldo Carvalho de Melo 30b6aa2f73 [LIB]: Rename classes.[ch] to dwarves.[ch]
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
2007-01-11 16:07:05 -02:00
Arnaldo Carvalho de Melo 7339f61868 [CMAKE]: Set a SONAME for libdwarves
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
2007-01-11 16:04:22 -02:00
Arnaldo Carvalho de Melo 24842ef908 [CMAKE]: Rerename the library, this time to libdwarves
To avoid a problem in CMakeLists.txt where the lib and the pahole binary
targets had the same name, leading to the binary not being built, and its a
much cooler name anyway.

Thanks to Leonardo Chiquitto for the suggestion he gave on the #dwarves
channel!

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
2007-01-11 15:28:08 -02:00
Arnaldo Carvalho de Melo 56f8ddb318 [CMAKE]: Rename libsoname.so to libpahole.so
Next cset will specify a soname, then a rpm specfile will be added.

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
2007-01-11 13:41:28 -02:00
Arnaldo Carvalho de Melo ded72c80bd [DTAGNAMES]: 6th dwarf
Just dump the tag names, simple utility to help rework classes abstractions to
reduce memory footprint:

[acme@newtoy pahole]$ dtagnames /pub/scm/linux/kernel/git/acme/OUTPUT/qemu/linux-2.6/vmlinux | sort | uniq -c | sort -nr
size: 110832408
 207882 formal_parameter
 167305 pointer_type
 106945 structure_type
  82200 subroutine_type
  44130 typedef
  28372 array_type
   9121 const_type
   7940 union_type
   6572 base_type
   1690 enumeration_type
    894 volatile_type
[acme@newtoy pahole]$

Argh, the 'struct class' catchall uses way too many memory for non
'structure_type' classes, work to do to reduce the current 105MB memory
footprint for processing a qemu vmlinux.

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
2006-12-28 14:03:42 -02:00
Arnaldo Carvalho de Melo 79206c3a22 [CMAKE]: Move the debug setting to the right place
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
2006-12-23 13:16:30 -02:00
Arnaldo Carvalho de Melo a4f099385b [CTRACER]: New tool
A class tracer, it looks for non-inline functions that receive as one of its
parameters a pointer to the specified "class" (a struct) and will generate a
kprobes kernel module, see the whole sequence in the README.ctracer file.

Next steps involve supporting kretprobes, inserting kprobes at each inline
"method" expansion, using relayfs, and eventually uprobes to make this useful
for userspace as well.

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
2006-12-20 12:16:16 -02:00
KOVACS Krisztian 9276e7d7f4 [CMAKE]: Fix build on debian unstable
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
2006-12-20 10:16:45 -02:00
Helio Chissini de Castro 75a3425a9a [MAKEFILE]: Use cmake in the build process
Signed-off-by: Helio Chissini de Castro <helio@mandriva.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
2006-12-12 00:37:23 -02:00