Go to file
Arnaldo Carvalho de Melo f314f4f896 [PAHOLE]: Introduce --recursive
For now only affects the --contains output.

Example showing the structs that include struct list_head in a linux kernel module:

[acme@filo pahole]$ pahole --recursive --contains list_head examples/ipv6.ko.debug.x86-64
inet_protosw
proto
sock_iocb
key_type
msg_queue
msg_msg
nf_hook_ops
softnet_data
net_device
  softnet_data
dma_device
dma_client
dma_chan
class_device
  net_device
    softnet_data
  dma_chan
class
klist_node
  device_driver
  device
klist
  device_driver
  bus_type
  device
file_system_type
nfs_lock_info
file_lock
block_device
address_space
  inode
dquot
mem_dqinfo
super_block
inode
signal_struct
page
kioctx
file
kiocb
work_struct
  delayed_work
    kioctx
timer_list
  ifmcaddr6
  inet6_dev
  inet6_ifaddr
  neigh_table
  neighbour
  net_device
    softnet_data
  sock
    inet_sock
  delayed_work
    kioctx
plist_head
  task_struct
sigpending
  signal_struct
  task_struct
user_struct
device
dev_pm_info
  device
mutex_waiter
mutex
  seq_file
  block_device
  quota_info
    super_block
  dquot
  super_block
  inode
zone
per_cpu_pages
free_area
kset
  bus_type
  subsystem
    class
    bus_type
__wait_queue_head
__wait_queue
rw_semaphore
  quota_info
    super_block
  super_block
  inode
  key
  blocking_notifier_head
    bus_type
  subsystem
    class
    bus_type
  mm_struct
dentry
vm_area_struct
kobject
  class_device
    net_device
      softnet_data
    dma_chan
  device_driver
  module_kobject
    module
  device
  kset
    bus_type
    subsystem
      class
      bus_type
lock_class
module
mm_struct
task_struct

Handling in multi-cu objects is not very precise, as the same struct has
different dwarf offsets (id) in each CU. A mitigation for this problem will be
provided with the --cu_list and --cu_name upcoming options, where one will be
able to get a list of the object files in a, for instance, linux kernel .ko
module and also to specify a cu name to be the only to be considered when
processing multi-cu files (again, such as .ko linux kernel modules).

This ends up being also useful to generate a reverse class hierarchy :-)

Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
2007-05-10 19:11:51 -03:00
cmake/modules [CMAKE] FindDWARF: Tell exactly which dependency was not found 2007-05-09 11:53:07 -03:00
lib [LIB]: Introduce conf_fprintf 2007-04-28 16:13:35 -03:00
ostra [CTRACER]: Lots of improvements 2007-02-02 15:15:27 -02:00
rpm/SPECS [RPM]: 24th release 2007-05-08 12:13:51 -03:00
CMakeLists.txt [LIB]: Move class__reorganize & friends to a new lib: libdwarves_reorganize 2007-05-07 00:30:02 -03:00
MANIFEST [LIB]: Move class__reorganize & friends to a new lib: libdwarves_reorganize 2007-05-07 00:30:02 -03:00
README [CMAKE]: Make the default install prefix be /usr/local 2007-04-19 18:01:47 -03:00
README.ctracer [CTRACER]: Lots of improvements 2007-02-02 15:15:27 -02:00
codiff.c [CODIFF]: Use cus__loadfl/libdwfl 2007-04-30 15:44:11 -03:00
ctracer.c [LIB]: Move class__reorganize & friends to a new lib: libdwarves_reorganize 2007-05-07 00:30:02 -03:00
dtagnames.c [LIB]: Allow of not specifying -e 2007-04-24 16:09:34 -03:00
dwarves.c [LIB]: Introduce type__nr_members_of_type 2007-05-10 15:28:00 -03:00
dwarves.h [LIB]: Introduce type__nr_members_of_type 2007-05-10 15:28:00 -03:00
dwarves_emit.c [LIB]: Move the __emit functions to a separate library, libdwarves_emit 2007-05-06 14:50:28 -03:00
dwarves_emit.h [LIB]: Move the __emit functions to a separate library, libdwarves_emit 2007-05-06 14:50:28 -03:00
dwarves_reorganize.c [LIB]: Move class__reorganize & friends to a new lib: libdwarves_reorganize 2007-05-07 00:30:02 -03:00
dwarves_reorganize.h [LIB]: Move class__reorganize & friends to a new lib: libdwarves_reorganize 2007-05-07 00:30:02 -03:00
list.h Repository creation. 2006-10-24 20:42:39 -03:00
pahole.c [PAHOLE]: Introduce --recursive 2007-05-10 19:11:51 -03:00
pdwtags.c [LIB]: Introduce conf_fprintf 2007-04-28 16:13:35 -03:00
pfunct.c [LIB]: Introduce conf_fprintf 2007-04-28 16:13:35 -03:00
pglobal.c [LIB]: Introduce conf_fprintf 2007-04-28 16:13:35 -03:00
prefcnt.c [PREFCNT]: reference count functions 2007-04-28 17:19:50 -03:00

README

Build instructions:

1. install cmake
2. mkdir build
3. cd build
4. cmake -D__LIB=lib ..
5. make install

Default is to be installed on /usr/local, see rpm spec file for
installing on other places.

Known to work scenarios:

Mandriva Cooker:

cmake 2.4.5-1mdv2007.1
libelfutils1-devel 0.123-1mdv2007.1

Debian Unstable:

cmake 2.4.5-1
libdw-dev 0.123-2

Fedora Core 6:

cmake 2.4.5-2.fc6
elfutils-devel 0.126-1.fc6