* staplog: Failed to find _stp_relay_data in module 'counter'
@ 2013-07-16 8:26 Timo Juhani Lindfors
2013-07-16 15:41 ` Frank Ch. Eigler
0 siblings, 1 reply; 2+ messages in thread
From: Timo Juhani Lindfors @ 2013-07-16 8:26 UTC (permalink / raw)
To: systemtap
Hi,
I was planning to enable the systemtap staplog crash extension in the
debian package but I can't figure out how to get it to work. Here's what
I'm currently trying:
1) start stap with
stap -m counter -e 'global i; probe timer.ms(1000) { printf("i = %d\n", i++); }'
2) take dump of the system memory using "xm dump-core lindi3 core"
3) open the dump with "crash -e emacs
/usr/lib/debug/boot/vmlinux-3.8-2-amd64 core" and try to use staplog:
crash 7.0.1
Copyright (C) 2002-2013 Red Hat, Inc.
Copyright (C) 2004, 2005, 2006, 2010 IBM Corporation
Copyright (C) 1999-2006 Hewlett-Packard Co
Copyright (C) 2005, 2006, 2011, 2012 Fujitsu Limited
Copyright (C) 2006, 2007 VA Linux Systems Japan K.K.
Copyright (C) 2005, 2011 NEC Corporation
Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc.
Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc.
This program is free software, covered by the GNU General Public License,
and you are welcome to change it and/or distribute copies of it under
certain conditions. Enter "help copying" to see the conditions.
This program has absolutely no warranty. Enter "help warranty" for details.
GNU gdb (GDB) 7.6
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu"...
KERNEL: /usr/lib/debug/boot/vmlinux-3.8-2-amd64
DUMPFILE: core
CPUS: 4
DATE: Mon Jul 15 12:00:24 2013
UPTIME: 54 days, 12:58:55
LOAD AVERAGE: 0.00, 0.10, 0.37
TASKS: 185
NODENAME: lindi3
RELEASE: 3.8-2-amd64
VERSION: #1 SMP Debian 3.8.13-1
MACHINE: x86_64 (3210 Mhz)
MEMORY: 1 GB
PANIC: ""
PID: 0
COMMAND: "swapper/0"
TASK: ffffffff81614400 (1 of 4) [THREAD_INFO: ffffffff81600000]
CPU: 0
STATE: TASK_RUNNING (ACTIVE)
WARNING: panic task not found
crash> extend staplog.so
./staplog.so: shared object loaded
crash> staplog counter
staplog: Failed to find _stp_relay_data in module 'counter'.
crash> p &_stp_relay_data
No symbol "_stp_relay_data" in current context.
p: gdb request failed: p &_stp_relay_data
crash> mod -s counter counter.ko
MODULE NAME SIZE OBJECT FILE
ffffffffa024b330 counter 31959 counter.ko
crash> p &_stp_relay_data
$1 = (<data variable, no debug info> *) 0xffffffffa024b580 <_stp_relay_data>
crash> staplog counter
staplog: Failed to find _stp_relay_data in module 'counter'.
crash>
Any idea what's wrong?
With gdb I see that
symbol_value_module("_stp_relay_data", module);
fails. I set a breakpoint at the "for ( ; sp < sp_end; sp++) {" line in
crash and noticed that even though it finds a lot of symbols
"_stp_relay_data" is not one of them:
1: sp->name = 0x22318d0 "_MODULE_START_counter"
1: sp->name = 0x2231307 "paravirt_read_tsc"
1: sp->name = 0x2231328 "atomic_inc"
1: sp->name = 0x2231333 "atomic_dec"
1: sp->name = 0x223133e "atomic_add_return"
1: sp->name = 0x2231350 "__stp_relay_dropped_open"
1: sp->name = 0x2231369 "skip_atoi"
1: sp->name = 0x2231373 "number"
1: sp->name = 0x223137a "number_size"
1: sp->name = 0x2231386 "_stp_vsprint_char_size"
1: sp->name = 0x223139d "_stp_vsprint_char"
1: sp->name = 0x22313af "check_binary_precision"
1: sp->name = 0x22313c6 "_stp_vsprint_binary"
1: sp->name = 0x22313da "param_get_int64_t"
1: sp->name = 0x22313ec "param_set_int64_t"
1: sp->name = 0x22313fe "copy_from_user_page_noflush"
1: sp->name = 0x223141a "copy_to_user_page_noflush"
1: sp->name = 0x2231434 "cpumask_next"
1: sp->name = 0x2231441 "_stp_module_panic_notifier"
1: sp->name = 0x223145c "_stp_kmodule_update_address"
1: sp->name = 0x2231478 "_stp_vsprint_memory_size"
1: sp->name = 0x2231491 "_stp_runtime_contexts_free"
1: sp->name = 0x22314ac "_stp_mempool_destroy"
1: sp->name = 0x22314c1 "_stp_unlock_transport_dir"
1: sp->name = 0x22314db "__stp_relay_remove_buf_file_callback"
1: sp->name = 0x2231500 "_stp_lock_transport_dir"
1: sp->name = 0x2231518 "_stp_remove_root_dir"
1: sp->name = 0x223152d "__stp_relay_create_buf_file_callback"
1: sp->name = 0x2231552 "__stp_relay_dropped_read"
1: sp->name = 0x223156b "hweight_long"
1: sp->name = 0x2231578 "_stp_ctl_open_cmd"
1: sp->name = 0x223158a "copy_from_user"
1: sp->name = 0x2231599 "_stp_vsprint_binary_size"
1: sp->name = 0x22315b2 "_stp_transport_data_fs_stop"
1: sp->name = 0x22315ce "__stp_relay_subbuf_start_callback"
1: sp->name = 0x22315f0 "stp_unlock_probe.constprop.18"
1: sp->name = 0x223160e "_stp_hrtimer_get_interval"
1: sp->name = 0x2231628 "_stp_kmalloc_gfp.constprop.30"
1: sp->name = 0x2231646 "_stp_ctl_close_cmd"
1: sp->name = 0x2231659 "_stp_kmodule_relocate"
1: sp->name = 0x223166f "lookup_bad_addr"
1: sp->name = 0x223167f "_stp_ctl_poll_cmd"
1: sp->name = 0x2231691 "__stp_relay_wakeup_timer"
1: sp->name = 0x22316aa "_stp_mempool_free"
1: sp->name = 0x22316bc "_stp_ctl_read_cmd"
1: sp->name = 0x22316ce "_stp_unregister_ctl_channel"
1: sp->name = 0x22316ea "_stp_vsprint_memory"
1: sp->name = 0x22316fe "_stp_mempool_alloc"
1: sp->name = 0x2231711 "_stp_ctl_send"
1: sp->name = 0x223171f "_stp_ctl_send_notify"
1: sp->name = 0x2231734 "_stp_ctl_work_callback"
1: sp->name = 0x223174b "_stp_alloc_percpu"
1: sp->name = 0x223175d "_stp_transport_data_fs_close"
1: sp->name = 0x223177a "_stp_transport_fs_close"
1: sp->name = 0x2231792 "_stp_transport_data_fs_init"
1: sp->name = 0x22317ae "init_module"
1: sp->name = 0x22317ba "stp_print_flush"
1: sp->name = 0x22317ca "_stp_print_flush"
1: sp->name = 0x22317db "_stp_reserve_bytes"
1: sp->name = 0x22317ee "probe_2049"
1: sp->name = 0x22317f9 "_stp_error"
1: sp->name = 0x2231804 "_stp_build_id_check.constprop.26"
1: sp->name = 0x2231825 "_stp_vsnprintf.constprop.39"
1: sp->name = 0x2231841 "_stp_snprintf.constprop.38"
1: sp->name = 0x223185c "_stp_warn"
1: sp->name = 0x2231866 "_stp_module_notifier"
1: sp->name = 0x223187b "_stp_cleanup_and_exit"
1: sp->name = 0x2231891 "cleanup_module"
1: sp->name = 0x22318a0 "_stp_ctl_write_cmd"
1: sp->name = 0x22318b3 "_stp_hrtimer_notify_function"
1: sp->name = 0x22312f0 "arch_local_irq_restore"
1: sp->name = 0x2231319 "_stp_softerror"
-Timo
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: staplog: Failed to find _stp_relay_data in module 'counter'
2013-07-16 8:26 staplog: Failed to find _stp_relay_data in module 'counter' Timo Juhani Lindfors
@ 2013-07-16 15:41 ` Frank Ch. Eigler
0 siblings, 0 replies; 2+ messages in thread
From: Frank Ch. Eigler @ 2013-07-16 15:41 UTC (permalink / raw)
To: Timo Juhani Lindfors; +Cc: systemtap
Timo Juhani Lindfors <timo.lindfors@iki.fi> writes:
> [...]
> RELEASE: 3.8-2-amd64
> [...]
> crash> extend staplog.so
> ./staplog.so: shared object loaded
> crash> staplog counter
> staplog: Failed to find _stp_relay_data in module 'counter'.
> [...]
The _stp_relay_data symbol is defined in runtime/transport/relay_v2.c,
which is only one possible configuration on more modern kernels. The
STP_TRANSPORT_VERSION influences choice of stap transport selection,
as does STP_USE_RING_BUFFER. Unfortunately staplog.so* has not been
updated with all variants that stap supports. It is possible that a
different problem is responsible, but this is where I'd start looking.
- FChE
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-07-16 15:41 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-16 8:26 staplog: Failed to find _stp_relay_data in module 'counter' Timo Juhani Lindfors
2013-07-16 15:41 ` Frank Ch. Eigler
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).