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> |
||
---|---|---|
cmake/modules | ||
lib | ||
ostra | ||
rpm/SPECS | ||
CMakeLists.txt | ||
MANIFEST | ||
README | ||
README.ctracer | ||
codiff.c | ||
ctracer.c | ||
dtagnames.c | ||
dwarves.c | ||
dwarves.h | ||
dwarves_emit.c | ||
dwarves_emit.h | ||
dwarves_reorganize.c | ||
dwarves_reorganize.h | ||
list.h | ||
pahole.c | ||
pdwtags.c | ||
pfunct.c | ||
pglobal.c | ||
prefcnt.c |
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