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


Zheng Da <zhengda1936@gmail.com> writes:

> 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 believe this message is derived from elfutils, a library used within
systemtap.  (See dwflpp.cxx:literal_stmt_for_return calling into
dwfl_module_return_value_location and follow from there.)  elfutils
tells us where to find return values of functions in the ABI of each
architecture, as a function of types.


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

It looks in the ELF and/or separated-DWARF files for the kernel:
basically the vmlinux and/or vmlinux.debug files.  It does not need
the ordinary object files that were linked together to go into
vmlinux.  (Kernel modules - .ko files - are different.)


> Any ideas how to debug the problem?

In this case, I might try focusing the debugger on the function
arm_return_value_location(), probably in elfutils' libebl_arm.so.

- FChE


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