This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: error to run systemtap in an ARM platform


On 07/25/11 08:46, William Cohen wrote:
On 07/23/2011 06:55 PM, Zheng Da wrote:
Hello,

I'm still trying to fix the problem.
semantic error: failed to retrieve return value location for vfs_write
(/build/tegra2_seaboard/tmp/portage/sys-kernel/chromeos-kernel-9999/work/chromeos-kernel-9999/fs/read_write.c):
identifier '$return' at read-write.stp:7:6
         source: 	if ($return>  0) {
                 	    ^
I'm pretty sure CONFIG_DEBUG_INFO is enabled, and in
/build/tegra2_seaboard/tmp/portage/sys-kernel/chromeos-kernel-9999/work/chromeos-kernel-9999/build/tegra2_seaboard,
a binary file vmlinux is 57MB. It should contain the debug information.

(cr) zhengda@zdpc
/build/tegra2_seaboard/tmp/portage/sys-kernel/chromeos-kernel-9999/work/chromeos-k
ernel-9999/build/tegra2_seaboard $ ls -l vmlinux
-rwxr-xr-x 1 zhengda portage 59419805 Jul 22 20:55 vmlinux

How does systemtap use the debug information? When it compiles the
script, does it need to read the debug information from the kernel
image? or it needs to read the .obj files of the kernel?
Any ideas how to debug the problem?

Thanks,
Da


To try to replicate the problem on an arm machine running fedora 13 I ran the current build of systemtap from the git reposository and tried the iostats.stp example which should be accessing the $return:

./install/bin/stap -v systemtap/testsuite/systemtap.examples/io/iostats.stp

This worked without problem on the locally built 2.6.31.14.24-efikamx linux kernel. This is a locally built kernel and systemtap is building things natively rather than attempting a cross compile. This is using:

gcc-4.4.5-2.fc13.armv5tel
elfutils-0.146-1.fc13.armv5tel
I use elfutils-0.131. Maybe the version of elfutils is too low. Let me see if I can build a newer version for my platform.
The following gives some suggestions on reporting bugs:

http://sourceware.org/systemtap/wiki/HowToReportBugs

These are "kernel("function_name").return"? What does list out as available at that probe point?

stap -L 'kernel("function_name").return'
$ stap -a arm -r /build/tegra2_seaboard/tmp/portage/sys-kernel/chromeos-kernel-9999/work/chromeos-kernel-9999/build/tegra2_seaboard -L 'kernel.function("sys_read").return'
kernel.function("sys_read@/build/tegra2_seaboard/tmp/portage/sys-kernel/chromeos-kernel-9999/work/chromeos-kernel-9999/fs/read_write.c:402").return $return:long int $fd:unsigned int $buf:char* $count:size_t $file:struct file* $ret:ssize_t


Thanks,
Da


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]