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